import axios from 'axios' import router from '@/router/index' import { ElMessage } from 'element-plus' // ElMessage import { useAppStore } from '@/store/modules/app'; import { userInfoModules } from "@/store/modules/userInfo"; import { store } from '@/store/index'; // 因为不是在setup环境而是js中,必须重新初始化加载store const appStore = useAppStore(store); //pinia const userInfoPinia = userInfoModules(store); //pinia // const userInfoPinia = userInfoModules(store); //pinia // 开发环境需以 "/api" 拼接,其他环境需以 "/C" 拼接 const env = process.env.NODE_ENV == 'development' ? "/api" : "/C" // const env = process.env.NODE_ENV == 'development' ? "" : "" console.log(env) /** * @description:发送Axios请求 */ const request = axios.create({ baseURL: env, timeout: 15000 }) // 请求拦截器 request.interceptors.request.use( function (config) { // 给所有授权的请求提供token const AccessToken = localStorage.getItem("AccessToken") if (AccessToken) { config.headers.token = AccessToken } return config }, function (error) { if (axios.isCancel(error)) { // 请求被取消处理 ElMessage.error( appStore.language == "zh-cn" ? `请求超时,请重试!` : `Request timeout, please try again` ); } // 操作 return Promise.reject(error) } ) // 响应拦截器 request.interceptors.response.use( function (response) { if (!response.data) { // ElMessage.error($t('tips.systemException')); ElMessage.error( appStore.language == "zh-cn" ? `服务器繁忙,请重试!` : `The server is busy, please try again` ); } let code = response.data.code // 当token无效(过期或损坏)时 1053为未登录 if (code == 1052 || code == 1053) { localStorage.removeItem("AccessToken"); router.push("/login"); // ElMessage.error("登录过期,请重新登录!"); // ElMessage.error($t('tips.tokenExpired')); ElMessage.error( appStore.language == "zh-cn" ? `登录过期,请重新登录!` : `Login expired, please login again` ); return // 弹出错误 } else if (code != 200 && code !== 64001) { if (code == 500) { // ElMessage.error("系统异常,请稍后再试"); // ElMessage.error($t('tips.systemException')); ElMessage.error( appStore.language == "zh-cn" ? (response.data.languageMessage && response.data.languageMessage['zh-cn']) || `服务器繁忙,请重试!` : (response.data.languageMessage && response.data.languageMessage[appStore.language]) || `The server is busy, please try again` ); // 其他错误 } else { return Promise.reject(response.data) } } else { // 正常返回 return response.data } }, function (error) { } ) export default request