vben
2021-08-24 56a966cfbf8db5b29a42185f0f25a0e800c30dbb
提交 | 用户 | age
b6d5b0 1 import type { ErrorMessageMode } from '/#/axios';
2f6253 2 import { useMessage } from '/@/hooks/web/useMessage';
190112 3 import { useI18n } from '/@/hooks/web/useI18n';
5465f0 4 // import router from '/@/router';
V 5 // import { PageEnum } from '/@/enums/pageEnum';
913c22 6 import { useUserStoreWithOut } from '/@/store/modules/user';
0d0708 7 import projectSetting from '/@/settings/projectSetting';
V 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 {
36         userStore.logout(true);
37       }
2f6253 38       break;
39     case 403:
49b66e 40       errMessage = t('sys.api.errMsg403');
2f6253 41       break;
42     // 404请求不存在
43     case 404:
49b66e 44       errMessage = t('sys.api.errMsg404');
2f6253 45       break;
46     case 405:
49b66e 47       errMessage = t('sys.api.errMsg405');
2f6253 48       break;
49     case 408:
49b66e 50       errMessage = t('sys.api.errMsg408');
2f6253 51       break;
52     case 500:
49b66e 53       errMessage = t('sys.api.errMsg500');
2f6253 54       break;
55     case 501:
49b66e 56       errMessage = t('sys.api.errMsg501');
2f6253 57       break;
58     case 502:
49b66e 59       errMessage = t('sys.api.errMsg502');
2f6253 60       break;
61     case 503:
49b66e 62       errMessage = t('sys.api.errMsg503');
2f6253 63       break;
64     case 504:
49b66e 65       errMessage = t('sys.api.errMsg504');
2f6253 66       break;
67     case 505:
49b66e 68       errMessage = t('sys.api.errMsg505');
2f6253 69       break;
70     default:
71   }
49b66e 72
X 73   if (errMessage) {
74     if (errorMessageMode === 'modal') {
75       createErrorModal({ title: t('sys.api.errorTip'), content: errMessage });
76     } else if (errorMessageMode === 'message') {
ea6834 77       error({ content: errMessage, key: `global_error_message_status_${status}` });
49b66e 78     }
X 79   }
2f6253 80 }