|
|
|
import axios from "axios";
|
|
|
|
import Cookies from "js-cookie";
|
|
|
|
import router from "@/router";
|
|
|
|
import qs from "qs";
|
|
|
|
import { clearLoginInfo } from "@/utils";
|
|
|
|
import isPlainObject from "lodash/isPlainObject";
|
|
|
|
|
|
|
|
const http = axios.create({
|
|
|
|
baseURL: window.SITE_CONFIG["apiURL"],
|
|
|
|
timeout: 1000 * 900,
|
|
|
|
withCredentials: true,
|
|
|
|
});
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 请求拦截
|
|
|
|
*/
|
|
|
|
http.interceptors.request.use(
|
|
|
|
(config) => {
|
|
|
|
config.headers["Accept-Language"] =
|
|
|
|
localStorage.getItem("language") || "zh-CN";
|
|
|
|
config.headers["token"] = localStorage.getItem("token") || "";
|
|
|
|
config.headers["Authorization"] = localStorage.getItem("token") || "";
|
|
|
|
// 默认参数
|
|
|
|
var defaults = {};
|
|
|
|
// 防止缓存,GET请求默认带_t参数
|
|
|
|
if (config.method == "get") {
|
|
|
|
config.params = {
|
|
|
|
...config.params,
|
|
|
|
...{ _t: new Date().getTime() },
|
|
|
|
};
|
|
|
|
}
|
|
|
|
if (isPlainObject(config.params)) {
|
|
|
|
config.params = {
|
|
|
|
...defaults,
|
|
|
|
...config.params,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
if (isPlainObject(config.data)) {
|
|
|
|
config.data = {
|
|
|
|
...defaults,
|
|
|
|
...config.data,
|
|
|
|
};
|
|
|
|
if (
|
|
|
|
/^application\/x-www-form-urlencoded/.test(
|
|
|
|
config.headers["content-type"]
|
|
|
|
)
|
|
|
|
) {
|
|
|
|
config.data = qs.stringify(config.data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return config;
|
|
|
|
},
|
|
|
|
(error) => {
|
|
|
|
return Promise.reject(error);
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 响应拦截
|
|
|
|
*/
|
|
|
|
http.interceptors.response.use(
|
|
|
|
(response) => {
|
|
|
|
const code = [10007, 401, 10001, 10005];
|
|
|
|
if (code.includes(response.data.code)) {
|
|
|
|
clearLoginInfo();
|
|
|
|
// localStorage.setItem('userType', 'work')
|
|
|
|
// let userType = localStorage.getItem("userType");
|
|
|
|
// if (userType === 'work'){
|
|
|
|
// router.replace({ name: 'loginWork' })
|
|
|
|
// }else {
|
|
|
|
// router.replace({ name: 'login' })
|
|
|
|
// }
|
|
|
|
router.replace({ name: "login" });
|
|
|
|
|
|
|
|
return Promise.reject(response.data.msg);
|
|
|
|
}
|
|
|
|
return response;
|
|
|
|
},
|
|
|
|
(error) => {
|
|
|
|
console.error(error);
|
|
|
|
return Promise.reject(error);
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
// http.put = function (url, data, config) {
|
|
|
|
// http.post(url, data, {
|
|
|
|
// ...config,
|
|
|
|
// headers: {
|
|
|
|
// "X-HTTP-Method-Override": "PUT",
|
|
|
|
// },
|
|
|
|
// });
|
|
|
|
// };
|
|
|
|
|
|
|
|
// http.delete = function (url, config) {
|
|
|
|
// http.post(url, config.data || {}, {
|
|
|
|
// ...config,
|
|
|
|
// headers: {
|
|
|
|
// "X-HTTP-Method-Override": "DELETE",
|
|
|
|
// },
|
|
|
|
// });
|
|
|
|
// };
|
|
|
|
|
|
|
|
export default http;
|