import axios from "axios"; import { ElMessage, ElMessageBox } from "element-plus"; import router from "../router/router"; const errorCode = { 401: "登录状态已过期,即将返回首页重新登录。", 403: "当前操作没有权限", 404: "访问资源不存在", default: "系统未知错误,请反馈给管理员", }; // const url = "https://repair.cpolar.top"; // 开发地址 const url = "https://api.cqcxj.cn"; // 正式地址 // const url = "https://cqjql.scdswj.cn:9443"; // 临时地址 const service = axios.create({ baseURL: url, timeout: 60000, }); // Request interceptors service.interceptors.request.use( (config) => { if (localStorage.getItem("token")) { config.headers["Authorization"] = "Bearer " + localStorage.getItem("token"); } if (config.url === "/login") { config.headers["Content-Type"] = "multipart/form-data"; } else { config.headers["Content-Type"] = "application/json"; } if (config.url === "/file") { config.headers["Content-Type"] = "multipart/form-data"; } let params = config.params; let newData = {}; for (let key in params) { if (params[key] !== null && params[key] !== "") { newData[key] = params[key]; } } config.params = newData; return config; }, (error) => { Promise.reject(error); } ); // Response interceptors service.interceptors.response.use( (res) => { // 对响应数据做点什么 const response = res.data; const code = res.data.code || 200; const message = errorCode[code] || res.data.msg || errorCode["default"]; if (code === 401) { if (res.code === 401 || res.code === 4001) { // 清除浏览器全部临时缓存 sessionStorage.clear(); localStorage.clear(); router.push("/login"); // store.commit('setMenuData', {}); // resetRouter(); // 重置路由 ElMessageBox.alert("你已被登出,请重新登录", "提示", {}) .then(() => {}) .catch(() => {}); } } else if (code === 500) { // Message({ message: msg, type: 'error' }) ElMessage.error(message); return Promise.reject(new Error(msg)); } else if (code === 601) { // Message({ message: msg, type: 'warning' }) ElMessage.error(message); return Promise.reject("error"); } else if (code != 200) { ElMessage.error(message); return Promise.reject("error"); } else { return response; } }, (error) => { console.log(error.response.data); // 获取错误状态码 // 对响应错误做点什么 if (error.message.indexOf("timeout") != -1) { ElMessage.error("网络超时"); } else if (error.message == "Network Error") { ElMessage.error("网络连接错误"); } else if (error.response.data.code == "401") { sessionStorage.clear(); localStorage.clear(); router.push("/login"); ElMessage.error(error.response.data.msg); } else { ElMessage.error( error.response.data.msg || error.response.data.error || error.response.data.errMessage ); } return Promise.reject(error); } ); export default service;