| | |
| | | |
| | | import { checkStatus } from './checkStatus'; |
| | | |
| | | import { useSetting } from '/@/hooks/core/useSetting'; |
| | | import { useGlobSetting } from '/@/hooks/setting'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | |
| | | import { RequestEnum, ResultEnum, ContentTypeEnum } from '/@/enums/httpEnum'; |
| | |
| | | import { setObjToUrlParams, deepMerge } from '/@/utils'; |
| | | import { errorStore } from '/@/store/modules/error'; |
| | | import { errorResult } from './const'; |
| | | import { useI18n } from '/@/hooks/web/useI18n'; |
| | | |
| | | const { globSetting } = useSetting(); |
| | | const globSetting = useGlobSetting(); |
| | | const prefix = globSetting.urlPrefix; |
| | | const { createMessage, createErrorModal } = useMessage(); |
| | | |
| | |
| | | * @description: 处理请求数据 |
| | | */ |
| | | transformRequestData: (res: AxiosResponse<Result>, options: RequestOptions) => { |
| | | const { t } = useI18n(); |
| | | const { isTransformRequestResult } = options; |
| | | // 不进行任何处理,直接返回 |
| | | // 用于页面代码可能需要直接获取code,data,message这些信息时开启 |
| | |
| | | if (message) { |
| | | // errorMessageMode=‘modal’的时候会显示modal错误弹窗,而不是消息提示,用于一些比较重要的错误 |
| | | if (options.errorMessageMode === 'modal') { |
| | | createErrorModal({ title: '错误提示', content: message }); |
| | | createErrorModal({ title: t('sys.api.errorTip'), content: message }); |
| | | } else { |
| | | createMessage.error(message); |
| | | } |
| | |
| | | createMessage.error(data.message); |
| | | Promise.reject(new Error(message)); |
| | | } else { |
| | | const msg = '操作失败,系统异常!'; |
| | | const msg = t('sys.api.errorMessage'); |
| | | createMessage.error(msg); |
| | | Promise.reject(new Error(msg)); |
| | | } |
| | |
| | | } |
| | | // 登录超时 |
| | | if (code === ResultEnum.TIMEOUT) { |
| | | const timeoutMsg = '登录超时,请重新登录!'; |
| | | const timeoutMsg = t('sys.api.timeoutMessage'); |
| | | createErrorModal({ |
| | | title: '操作失败', |
| | | title: t('sys.api.operationFailed'), |
| | | content: timeoutMsg, |
| | | }); |
| | | Promise.reject(new Error(timeoutMsg)); |
| | |
| | | * @description: 响应错误处理 |
| | | */ |
| | | responseInterceptorsCatch: (error: any) => { |
| | | const { t } = useI18n(); |
| | | errorStore.setupErrorHandle(error); |
| | | const { response, code, message } = error || {}; |
| | | const msg: string = |
| | |
| | | const err: string = error.toString(); |
| | | try { |
| | | if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) { |
| | | createMessage.error('接口请求超时,请刷新页面重试!'); |
| | | createMessage.error(t('sys.api.apiTimeoutMessage')); |
| | | } |
| | | if (err && err.includes('Network Error')) { |
| | | createErrorModal({ |
| | | title: '网络异常', |
| | | content: '请检查您的网络连接是否正常!', |
| | | title: t('sys.api.networkException'), |
| | | content: t('sys.api.networkExceptionMsg'), |
| | | }); |
| | | } |
| | | } catch (error) { |