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.
76 lines
2.3 KiB
76 lines
2.3 KiB
import type { ErrorMessageMode } from '@/types/axios' |
|
import { useMessage } from '@/hooks/web/useMessage' |
|
import { useI18n } from '@/hooks/web/useI18n' |
|
// import router from '@/router'; |
|
// import { PageEnum } from '@/enums/pageEnum'; |
|
import { useUserStoreWithOut } from '@/store/modules/user' |
|
import projectSetting from '@/settings/projectSetting' |
|
import { SessionTimeoutProcessingEnum } from '@/enums/appEnum' |
|
|
|
const { createMessage, createErrorModal } = useMessage() |
|
const error = createMessage.error! |
|
const stp = projectSetting.sessionTimeoutProcessing |
|
|
|
export function checkStatus(status: number, msg: string, errorMessageMode: ErrorMessageMode = 'message'): void { |
|
const { t } = useI18n() |
|
const userStore = useUserStoreWithOut() |
|
let errMessage = '' |
|
|
|
switch (status) { |
|
case 400: |
|
errMessage = `${msg}` |
|
break |
|
// 401: Not logged in |
|
// Jump to the login page if not logged in, and carry the path of the current page |
|
// Return to the current page after successful login. This step needs to be operated on the login page. |
|
case 401: |
|
userStore.setAccessToken(undefined) |
|
errMessage = msg || t('sys.api.errMsg401') |
|
if (stp === SessionTimeoutProcessingEnum.PAGE_COVERAGE) { |
|
userStore.setSessionTimeout(true) |
|
} else { |
|
userStore.logout(true) |
|
} |
|
break |
|
case 403: |
|
errMessage = t('sys.api.errMsg403') |
|
break |
|
// 404请求不存在 |
|
case 404: |
|
errMessage = t('sys.api.errMsg404') |
|
break |
|
case 405: |
|
errMessage = t('sys.api.errMsg405') |
|
break |
|
case 408: |
|
errMessage = t('sys.api.errMsg408') |
|
break |
|
case 500: |
|
errMessage = t('sys.api.errMsg500') |
|
break |
|
case 501: |
|
errMessage = t('sys.api.errMsg501') |
|
break |
|
case 502: |
|
errMessage = t('sys.api.errMsg502') |
|
break |
|
case 503: |
|
errMessage = t('sys.api.errMsg503') |
|
break |
|
case 504: |
|
errMessage = t('sys.api.errMsg504') |
|
break |
|
case 505: |
|
errMessage = t('sys.api.errMsg505') |
|
break |
|
default: |
|
} |
|
|
|
if (errMessage) { |
|
if (errorMessageMode === 'modal') { |
|
createErrorModal({ title: t('sys.api.errorTip'), content: errMessage }) |
|
} else if (errorMessageMode === 'message') { |
|
error({ content: errMessage, key: `global_error_message_status_${status}` }) |
|
} |
|
} |
|
}
|
|
|