import type { AxiosInstance, CreateAxiosDefaults } from 'axios';
|
import axios from 'axios';
|
import { useLogin } from '@/stores/useLogin';
|
// 配置新建一个 axios 实例
|
const createAxiosInstance = (option: Partial<CreateAxiosDefaults<any>> = {}) => {
|
const WebApi = window.globalConfig.WebApiUrl.MainUrl
|
return axios.create({
|
baseURL: WebApi,
|
timeout: 1200000,
|
...option,
|
});
|
};
|
//#region ====================== 普通请求实例 ======================
|
export const request = createAxiosInstance();
|
//#endregion
|
|
const initRequestInterceptor_yw = (instance: AxiosInstance) => {
|
instance.interceptors.request.use((config) => {
|
config.headers['Token'] = getToken();
|
config.headers['Lang'] = 0;
|
return config;
|
});
|
|
instance.interceptors.response.use((response) => {
|
return response;
|
});
|
};
|
const getToken = () => {
|
const loginStore = useLogin()
|
const userInfo = loginStore.getUserInfo();
|
return userInfo.Token ?? '';
|
};
|
|
// 初始化请求拦截器
|
initRequestInterceptor_yw(request);
|