雪忆
2024-07-29 ecfe66a0199606241c73a52519bbe800c9aa31f8
提交 | 用户 | age
4d2fb0 1 import type { ErrorMessageMode } from '#/axios';
X 2 import { useMessage } from '@/hooks/web/useMessage';
3 import { useI18n } from '@/hooks/web/useI18n';
4 // import router from '@/router';
5 // import { PageEnum } from '@/enums/pageEnum';
6 import { useUserStoreWithOut } from '@/store/modules/user';
7 import projectSetting from '@/settings/projectSetting';
8 import { SessionTimeoutProcessingEnum } from '@/enums/appEnum';
b7ce74 9
49b66e 10 const { createMessage, createErrorModal } = useMessage();
2f6253 11 const error = createMessage.error!;
0d0708 12 const stp = projectSetting.sessionTimeoutProcessing;
b6d5b0 13
49b66e 14 export function checkStatus(
X 15   status: number,
16   msg: string,
56a966 17   errorMessageMode: ErrorMessageMode = 'message',
49b66e 18 ): void {
962f90 19   const { t } = useI18n();
913c22 20   const userStore = useUserStoreWithOut();
49b66e 21   let errMessage = '';
X 22
2f6253 23   switch (status) {
24     case 400:
49b66e 25       errMessage = `${msg}`;
2f6253 26       break;
589409 27     // 401: Not logged in
V 28     // Jump to the login page if not logged in, and carry the path of the current page
29     // Return to the current page after successful login. This step needs to be operated on the login page.
2f6253 30     case 401:
3a5d1a 31       userStore.setToken(undefined);
32       errMessage = msg || t('sys.api.errMsg401');
0d0708 33       if (stp === SessionTimeoutProcessingEnum.PAGE_COVERAGE) {
V 34         userStore.setSessionTimeout(true);
35       } else {
236ddf 36         // 被动登出,带redirect地址
X 37         userStore.logout(false);
0d0708 38       }
2f6253 39       break;
40     case 403:
49b66e 41       errMessage = t('sys.api.errMsg403');
2f6253 42       break;
43     // 404请求不存在
44     case 404:
49b66e 45       errMessage = t('sys.api.errMsg404');
2f6253 46       break;
47     case 405:
49b66e 48       errMessage = t('sys.api.errMsg405');
2f6253 49       break;
50     case 408:
49b66e 51       errMessage = t('sys.api.errMsg408');
2f6253 52       break;
53     case 500:
49b66e 54       errMessage = t('sys.api.errMsg500');
2f6253 55       break;
56     case 501:
49b66e 57       errMessage = t('sys.api.errMsg501');
2f6253 58       break;
59     case 502:
49b66e 60       errMessage = t('sys.api.errMsg502');
2f6253 61       break;
62     case 503:
49b66e 63       errMessage = t('sys.api.errMsg503');
2f6253 64       break;
65     case 504:
49b66e 66       errMessage = t('sys.api.errMsg504');
2f6253 67       break;
68     case 505:
49b66e 69       errMessage = t('sys.api.errMsg505');
2f6253 70       break;
71     default:
72   }
49b66e 73
X 74   if (errMessage) {
75     if (errorMessageMode === 'modal') {
76       createErrorModal({ title: t('sys.api.errorTip'), content: errMessage });
77     } else if (errorMessageMode === 'message') {
ea6834 78       error({ content: errMessage, key: `global_error_message_status_${status}` });
49b66e 79     }
X 80   }
2f6253 81 }