import type { ErrorMessageMode } from '/#/axios' import { useMessage } from '@/hooks/useMessage' import { useUserStore } from '@/store/moules/userStore/index' import { HttpErrorMsgEnum } from '@/enums/httpEnum' const { createMessage, createErrorModal } = useMessage() const error = createMessage.error! export function checkStatus( status: number, msg: string, errorMessageMode: ErrorMessageMode = 'message', ): void { const userStore = useUserStore() let errMessage = '' switch (status) { case 400: errMessage = msg || HttpErrorMsgEnum.API_REQUEST_FAILED 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: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_401 userStore.logout(true) break case 403: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_403 break // 404请求不存在 case 404: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_404 break case 405: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_405 break case 408: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_408 break case 500: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_500 break case 501: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_501 break case 502: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_502 break case 503: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_503 break case 504: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_504 break case 505: errMessage = msg || HttpErrorMsgEnum.ERROR_MESSAGE_505 break default: } if (errMessage) { if (errorMessageMode === 'modal') createErrorModal({ title: HttpErrorMsgEnum.ERROR_TIP, content: errMessage }) else if (errorMessageMode === 'message') error({ content: errMessage, key: `global_error_message_status_${status}` }) } }