import axios from "axios"; // import qs from 'qs' // import router from "@/router/index"; // import useUserStore from "../store/modules/user"; import { Toast } from "tdesign-mobile-vue"; // 错误码枚举 enum responseCode { success = 200, // 成功 noPermission = 401, // 未授权 error = 500, // 服务器异常 } const request = axios.create({ // baseURL: window.sessionStorage.getItem("baseURL")!, baseURL: 'http://11.100.6.182:5000', // baseURL: import.meta.env.DEV && import.meta.env.VITE_OPEN_PROXY === 'true' ? '/proxy/' : import.meta.env.VITE_APP_API_BASEURL, timeout: 1000 * 60, responseType: "json", }); request.interceptors.request.use((request) => { // const userStore = useUserStore(); /** * 全局拦截请求发送前提交的参数 * 以下代码为示例,在请求头里带上 token 信息 */ // if (userStore.isLogin && request.headers) { // request.headers.token = userStore.token; // } // 是否将 POST 请求参数进行字符串化处理 if (request.method === "post") { // request.data = qs.stringify(request.data, { // arrayFormat: 'brackets', // }) } return request; }); request.interceptors.response.use( (response) => { /** * 全局拦截请求发送后返回的数据,如果数据有报错则在这做全局的错误提示 * 如果是文件直接返回整个response对象 */ if (response.data instanceof Blob) { return Promise.resolve(response); } else if (response.data.code !== responseCode.success) { if (response.data.code === responseCode.noPermission) { // 401 // token失效状态跳转到登录页 // toLogin(); // if (useUserStore().isLogout === 0) { // Toast(response.data.message || "发生错误"); // } // useUserStore().toLogout(); } else { // 这里做错误提 Toast({ theme: 'error', direction: 'column', message: `${response.data.message}` || "发生错误", }); // const loadingInstance = ElLoading.service({}); // nextTick(() => { // // Loading should be closed asynchronously // loadingInstance.close(); // }); } return Promise.reject(response.data); } else { // 成功 return Promise.resolve(response.data); } }, (error) => { // 处理文件下载的错误提示 if (error.message) { let message = error.message; if (message === "Network Error") { message = "后端网络故障"; } else if (message.includes("timeout")) { message = "接口请求超时"; } else if (message.includes("Request failed with status code")) { message = `接口${message.substr(message.length - 3)}异常`; } Toast({ theme: 'error', direction: 'column', message: message, }); } return Promise.reject(error); } ); export default request;