40 lines
1.6 KiB
TypeScript
40 lines
1.6 KiB
TypeScript
import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosRequestHeaders } from "axios";
|
|
import formrHandle from "./format-handle";
|
|
import { debugUser } from "@/assets/config/api.config";
|
|
import conf from "@/assets/config/host.config";
|
|
|
|
export const initAxiosInstance: (config: AxiosRequestConfig) => AxiosInstance = config => {
|
|
let axiosInstance: AxiosInstance = axios.create(config);
|
|
|
|
axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => {
|
|
// if (config.params && typeof config.params != "string") config.params = utils.filterNull(config.params);
|
|
if (localStorage.getItem("currentRole") != null) {
|
|
(config.headers as AxiosRequestHeaders)["currentRole"] = localStorage.getItem("currentRole") as string;
|
|
}
|
|
//@ts-ignore
|
|
const bschUtil = BschLoadUtil.getInstance();
|
|
if (!bschUtil.getIsSelf()) {
|
|
(config.headers as AxiosRequestHeaders)["ticket"] = sessionStorage.getItem("bschTicket") as string;
|
|
(config.headers as AxiosRequestHeaders)["platform"] = "grzx";
|
|
}
|
|
if (!!conf.isDebug) {
|
|
//如果是开发环境
|
|
for (const key in debugUser) (config.headers as AxiosRequestHeaders)[key] = (debugUser as any)[key];
|
|
// (config.headers as AxiosRequestHeaders)["bschapirequest"] = "1";
|
|
}
|
|
|
|
return config;
|
|
});
|
|
|
|
axiosInstance.interceptors.response.use(
|
|
response => {
|
|
return formrHandle(response);
|
|
},
|
|
error => {
|
|
return formrHandle(error.response);
|
|
}
|
|
);
|
|
|
|
return axiosInstance;
|
|
};
|