You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.1 KiB
120 lines
4.1 KiB
|
1 month ago
|
// import { useTenantStore, useUserStore, useModalStore } from '@star/stores';
|
||
|
|
// import { mb_t } from '@star/languages';
|
||
|
|
// import { router } from '@routers';
|
||
|
|
import { endsWith, includes, startsWith } from 'lodash-es';
|
||
|
|
// import { ModalTypeEnum } from '@star/constants';
|
||
|
|
|
||
|
|
// 错误提示
|
||
|
|
export default class NetworkError {
|
||
|
|
tag: string;
|
||
|
|
key: string;
|
||
|
|
info: string;
|
||
|
|
level: string;
|
||
|
|
origin: string;
|
||
|
|
cmd: string;
|
||
|
|
code: number;
|
||
|
|
logout: boolean;
|
||
|
|
update: boolean;
|
||
|
|
time: string;
|
||
|
|
|
||
|
|
constructor(options: any) {
|
||
|
|
this.tag = '';
|
||
|
|
this.key = '';
|
||
|
|
this.info = '';
|
||
|
|
this.level = '';
|
||
|
|
this.origin = '';
|
||
|
|
this.cmd = '';
|
||
|
|
// this.code = 0
|
||
|
|
this.code = -1;
|
||
|
|
this.logout = false;
|
||
|
|
this.update = false;
|
||
|
|
this.time = new Date().toLocaleString().split('GMT')[0];
|
||
|
|
if (options) {
|
||
|
|
if (options.key) {
|
||
|
|
this.key = options.key;
|
||
|
|
}
|
||
|
|
if (options.tag) {
|
||
|
|
this.tag = options.tag;
|
||
|
|
}
|
||
|
|
if (options.info) {
|
||
|
|
if (startsWith(options.info, '{') && endsWith(options.info, '}')) {
|
||
|
|
const result = JSON.parse(options.info);
|
||
|
|
this.info = result?.msg || result?.exMessage || '';
|
||
|
|
} else {
|
||
|
|
this.info = options.info;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (options.level) {
|
||
|
|
this.level = options.level;
|
||
|
|
}
|
||
|
|
if (options.origin) {
|
||
|
|
this.origin = options.origin;
|
||
|
|
}
|
||
|
|
if (options.cmd) {
|
||
|
|
this.cmd = options.cmd;
|
||
|
|
}
|
||
|
|
if (options.code) {
|
||
|
|
this.code = options.code;
|
||
|
|
}
|
||
|
|
if (options.logout) {
|
||
|
|
this.logout = options.logout;
|
||
|
|
}
|
||
|
|
if (options.update) {
|
||
|
|
this.update = options.update;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
// const tenantStore = useTenantStore();
|
||
|
|
// if ([371130, 381119].includes(Number(this.cmd))) {
|
||
|
|
// tenantStore.setRepairStatus(true);
|
||
|
|
// }
|
||
|
|
if (this.info.indexOf('invalid_token') !== -1) {
|
||
|
|
this.info = '亲,麻烦重新登录哦';
|
||
|
|
} else if (this.info.indexOf('Request failed with status code 500') !== -1) {
|
||
|
|
this.info = '网络不给力,请检查网络' + '(500)';
|
||
|
|
} else if (this.info.indexOf('Request failed with status code 502') !== -1) {
|
||
|
|
this.info = '网络不给力,请检查网络' + '(502)';
|
||
|
|
} else if (this.info.indexOf('Error 503 Service Unavailable') !== -1) {
|
||
|
|
this.info = '网络不给力,请检查网络' + '(503)';
|
||
|
|
} else if (this.info.indexOf('Request failed with status code 504') !== -1) {
|
||
|
|
this.info = '网络不给力,请检查网络' + '(504)';
|
||
|
|
} else if (this.info.indexOf('timeout of 20000ms') !== -1) {
|
||
|
|
this.info = '请求超时,请检查网络';
|
||
|
|
} else if (this.info.indexOf('Error 400 Bad Request') !== -1) {
|
||
|
|
this.info = '网络不给力,请重新尝试';
|
||
|
|
} else if (this.info.indexOf('Network Error') !== -1) {
|
||
|
|
this.info = '网络错误,请检查网络';
|
||
|
|
} else if (options?.code === '1115') {
|
||
|
|
// tenantStore.setRepairData(options.origin);
|
||
|
|
// tenantStore.setRepairStatus(true);
|
||
|
|
} else {
|
||
|
|
console.error('err.info:', this.cmd, this.info, options);
|
||
|
|
// this.info = this.info
|
||
|
|
// if (this.info) {
|
||
|
|
// showFailToast(mb_t(this.info));
|
||
|
|
// }
|
||
|
|
// if (this.info && this.info.includes('重新登录')) {
|
||
|
|
// const userStore = useUserStore();
|
||
|
|
// userStore?.clearUserInfo?.();
|
||
|
|
// if (
|
||
|
|
// !startsWith(router.currentRoute.value?.path, '/activity') &&
|
||
|
|
// !includes(['home', 'mine', 'activity'], router.currentRoute.value?.name)
|
||
|
|
// ) {
|
||
|
|
// const modalStore = useModalStore();
|
||
|
|
// const path = router.currentRoute.value?.fullPath;
|
||
|
|
// modalStore.showRegisterModal({ redirect: path });
|
||
|
|
// router.replace?.('/home');
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
// if (this.info.includes('访问限制')) {
|
||
|
|
// tenantStore.setIPLimitStatus(true);
|
||
|
|
// }
|
||
|
|
// [371130, 370433]返回了请求没有任何数据 才跳维护 其他接口忽略
|
||
|
|
// if ([371130, 370433].includes(Number(this.cmd))) {
|
||
|
|
// // console.log(371130, 370433, this.info, '????????????????????????????');
|
||
|
|
// tenantStore.setRepairStatus(true);
|
||
|
|
// }
|
||
|
|
}
|
||
|
|
// this.info = mb_t(this.info);
|
||
|
|
}
|
||
|
|
}
|