112 lines
3.6 KiB
JavaScript
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;
|