import type { ErrorMessageMode, ErrorModalType } from '/#/axios'; import { Modal, message, notification } from 'ant-design-vue'; import { isFunction } from '/@/utils/is'; export function checkStatus( status: number, msg: string, errorMessageMode: ErrorMessageMode = 'message', errorModalType: ErrorModalType = 'error', needAuthCallBack?: (result: any) => void, customModalCallBack?: (result: any) => void, ): void { let errMessage = ''; switch (status) { // 401:未登录 //未登录跳转到登录页面,携带当前页面路径 //登录成功后返回当前页面该步骤需要在登录界面上进行操作 case 401: errMessage = msg || '用户没有权限(令牌、用户名、密码错误)!'; if (needAuthCallBack && isFunction(needAuthCallBack)) { needAuthCallBack({ msg: msg, status: status }); return; } break; default: errMessage = `${msg}`; } if (errMessage) { if (errorMessageMode === 'modal') { Modal[errorModalType]({ content: () => errMessage, }); } else if (errorMessageMode === 'message') { message[errorModalType]({ content: errMessage, key: `global_error_message_status_${status}`, }); } else if (errorMessageMode === 'notification') { notification[errorModalType]({ message: errMessage, }); } else if (errorMessageMode === 'custom') { if (customModalCallBack && isFunction(customModalCallBack)) { customModalCallBack({ msg: errMessage, status: status }); } } } }