| | |
| | | import type { AxiosInstance, AxiosRequestConfig } from 'axios'; |
| | | import type { AxiosInstance, AxiosRequestConfig, CancelToken } from 'axios'; |
| | | import axios from 'axios'; |
| | | import { ElLoadingService, ElMessage } from 'element-plus'; |
| | | import router from '../router'; |
| | | import { debounce } from './util'; |
| | | import { debounce, decodeFormData } from './util'; |
| | | import { AUTH_URL, MAIN_URL, SECONDARY_URL } from '/@/constants'; |
| | | import { Local, Session } from '/@/utils/storage'; |
| | | import { Logger } from '../model/logger/Logger'; |
| | | // import JSONbig from 'json-bigint'; |
| | | export type ExtraConfig = { |
| | | loading?: boolean; |
| | | noAuth?: boolean; |
| | | handleFail?: boolean; |
| | | cancelToken?: CancelToken | undefined; |
| | | }; |
| | | export const checkAuth = () => { |
| | | const session = Local.get(accessSessionKey); |
| | |
| | | case ErrorCode.Auth: |
| | | handleNoAuth(); |
| | | throw '权限验证失败'; |
| | | break; |
| | | case ErrorCode.Exception: |
| | | const param = res.config.data ? `\n 请求参数:${JSON.stringify(decodeFormData(res.config.data))}\n` : ''; |
| | | ElMessage.error('内部错误!'); |
| | | throw '内部错误'; |
| | | Logger.error(`${res.config.url} 响应失败${param}`, serveData?.json_msg && new Error(serveData?.json_msg)); |
| | | throw ''; |
| | | |
| | | return res.data; |
| | | } |
| | | // 非 message error,且 handleFail 为 true |
| | | // message error 不需要处理 |
| | | if (handleFail && serveData?.err_code !== ErrorCode.Message) { |
| | | const errorText = serveData?.json_msg || '响应失败!'; |
| | | const errorText = serveData?.json_msg; |
| | | ElMessage.error(errorText); |
| | | throw errorText; |
| | | const param = res.config.data ? `\n 请求参数:${JSON.stringify(decodeFormData(res.config.data))}\n` : ''; |
| | | Logger.error(`${res.config.url} 响应失败${param}`, errorText && new Error(errorText)); |
| | | throw ''; |
| | | } |
| | | } |
| | | return res.data; |