| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios";
- import { useUserStoreHook } from "@/store/modules/user";
- import {getToken, setToken, removeToken} from '@/utils/js-cookie'
- // 创建 axios 实例
- const service = axios.create({
- baseURL: import.meta.env.VITE_APP_BASE_API,
- timeout: 50000,
- headers: { "Content-Type": "application/json;charset=utf-8" },
- });
- // 请求拦截器
- service.interceptors.request.use(
- (config: InternalAxiosRequestConfig) => {
- const userStore = useUserStoreHook();
- config.headers['X-ERP-User-From'] = 100;
- if (userStore.user.token) {
- config.headers['X-Token'] = getToken('Access-100-Token');
- }
- if (getToken('dataBaseAlias')) {
- config.headers['X-ERP-DataSource-Id'] = getToken('dataBaseAlias');
- }
- if (getToken('shardingKey')) {
- config.headers['X-ERP-Supplier-Code'] = getToken('shardingKey');
- }
- return config;
- },
- (error: any) => {
- return Promise.reject(error);
- }
- );
- // 响应拦截器
- service.interceptors.response.use(
- (response: AxiosResponse) => {
- const res = response.data
- // console.log(res);
- if (res.httpCode !== 200 && res.httpCode!=undefined) {
- ElMessage({
- message: res.msg || res.data,
- type: 'error',
- duration: 5 * 1000,
- showClose: true,
- })
- if (res.httpCode === 403 || res.httpCode === 401 || res.httpCode === 50014) {
- // to re-login
- ElMessageBox.confirm('您已注销,可以取消以留在此页,或重新登录', '确认?', {
- confirmButtonText: '重新登录',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- location.reload()
- })
- }
- return Promise.reject(res)
- } else {
- return res
- }
- },
- (error: any) => {
- console.log('err' + error) // for debug
- return Promise.reject(error)
- }
- );
- // 导出 axios 实例
- export default service;
|