75 lines
1.8 KiB
TypeScript
75 lines
1.8 KiB
TypeScript
import type { ErrorMessageMode } from 'types/axios'
|
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
import { useI18n } from '@/hooks/web/useI18n'
|
|
import { useCache } from '@/hooks/web/useCache'
|
|
|
|
const { wsCache } = useCache()
|
|
|
|
export function checkStatus(
|
|
status: number,
|
|
msg: string,
|
|
errorMessageMode: ErrorMessageMode = 'message'
|
|
): void {
|
|
const { t } = useI18n()
|
|
let errMessage = ''
|
|
|
|
switch (status) {
|
|
case 400:
|
|
errMessage = `${msg}`
|
|
break
|
|
// 401: Not logged in
|
|
// 如果未登录,跳转到登录页面,并携带当前页面的路径
|
|
// 成功登录后返回当前页面。此步骤需要在登录页面上操作。
|
|
case 401:
|
|
wsCache.clear()
|
|
errMessage = msg || t('sys.api.errMsg401')
|
|
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
|
|
case 901:
|
|
errMessage = t('sys.api.errMsg505')
|
|
break
|
|
default:
|
|
}
|
|
|
|
if (errMessage) {
|
|
if (errorMessageMode === 'modal') {
|
|
ElMessageBox.confirm(errMessage, {
|
|
cancelButtonText: t('common.cancel'),
|
|
type: 'warning'
|
|
})
|
|
} else if (errorMessageMode === 'message') {
|
|
ElMessage.error(errMessage)
|
|
}
|
|
}
|
|
}
|