Files
backstage-repair/src/api/request.js
T

112 lines
3.6 KiB
JavaScript

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;