1
0

checkStatus.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import type { ErrorMessageMode } from '/#/axios';
  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';
  9. const { createMessage, createErrorModal } = useMessage();
  10. const error = createMessage.error!;
  11. const stp = projectSetting.sessionTimeoutProcessing;
  12. export function checkStatus(
  13. status: number,
  14. msg: string,
  15. errorMessageMode: ErrorMessageMode = 'message'
  16. ): void {
  17. const { t } = useI18n();
  18. const userStore = useUserStoreWithOut();
  19. let errMessage = '';
  20. switch (status) {
  21. case 400:
  22. errMessage = `${msg}`;
  23. break;
  24. // 401: Not logged in
  25. // Jump to the login page if not logged in, and carry the path of the current page
  26. // Return to the current page after successful login. This step needs to be operated on the login page.
  27. case 401:
  28. errMessage = t('sys.api.errMsg401');
  29. if (stp === SessionTimeoutProcessingEnum.PAGE_COVERAGE) {
  30. userStore.setToken(undefined);
  31. userStore.setSessionTimeout(true);
  32. } else {
  33. userStore.logout(true);
  34. }
  35. break;
  36. case 403:
  37. errMessage = t('sys.api.errMsg403');
  38. break;
  39. // 404请求不存在
  40. case 404:
  41. errMessage = t('sys.api.errMsg404');
  42. break;
  43. case 405:
  44. errMessage = t('sys.api.errMsg405');
  45. break;
  46. case 408:
  47. errMessage = t('sys.api.errMsg408');
  48. break;
  49. case 500:
  50. errMessage = t('sys.api.errMsg500');
  51. break;
  52. case 501:
  53. errMessage = t('sys.api.errMsg501');
  54. break;
  55. case 502:
  56. errMessage = t('sys.api.errMsg502');
  57. break;
  58. case 503:
  59. errMessage = t('sys.api.errMsg503');
  60. break;
  61. case 504:
  62. errMessage = t('sys.api.errMsg504');
  63. break;
  64. case 505:
  65. errMessage = t('sys.api.errMsg505');
  66. break;
  67. default:
  68. }
  69. if (errMessage) {
  70. if (errorMessageMode === 'modal') {
  71. createErrorModal({ title: t('sys.api.errorTip'), content: errMessage });
  72. } else if (errorMessageMode === 'message') {
  73. error({ content: errMessage, key: `global_error_message_status_${status}` });
  74. }
  75. }
  76. }