import createAxios from "./axios"; import { token } from "@/stores/modules/user"; import { message } from "./message"; const TOKEN_KEY = "token"; const APP_KEY = "appid"; const API_PREFIX = ""; // 请求拦截 const beforeRequest = (config: any) => { // =====》 token 逻辑自定义处理 console.log("token 逻辑自定义处理") // if (APP_ID) config.headers[APP_KEY] = APP_ID if (token) config.headers[TOKEN_KEY] = unref(token); }; // 响应拦截 const afterResponse = async (response: any) => { const { data, status } = response; if (data instanceof Blob) { const fileName = response.headers["content-disposition"] ?.split(";")[1] ?.split("=")[1]; return { data, fileName, }; } const { errCode, code, msg } = data || {}; const errMsg = data?.errMsg || data?.message || msg; console.log(11, code, errMsg) // // =====》 自定义业务状态处理 // const app = Vue.prototype.getApp(); // if (code === 10005) { // // await logout() // } if (![0, 200].includes(code)) { message.error(errMsg); return Promise.reject(errMsg); } if (/^[4|5].*/.test(code || errCode || status)) { console.error('> axios(interceptors.response): ', errMsg); message.error(errMsg); // 处理未登录,token过期等 情况 // if (code !== 404 && /^[4].*/.test(code || errCode || status)) { // await app.fedLogout(); // } return Promise.reject(data); } return data; }; export default createAxios