/** * axios 实例 */ import axios from 'axios'; import type { AxiosResponse } from 'axios'; import {API_BASE_URL, TENANT_ID, TOKEN_HEADER_NAME} from '~/config'; import { getToken, setToken } from './token-util'; import type { ApiResult } from '@/api'; import { getHostname, getTenantId } from '@/utils/domain'; const service = axios.create({ baseURL: API_BASE_URL }); /** * 添加请求拦截器 */ service.interceptors.request.use( (config) => { const tid = TENANT_ID; const token = getToken(); // 添加 token 到 header if (token && config.headers) { config.headers.common[TOKEN_HEADER_NAME] = token; } // 获取租户ID if (config.headers) { // 附加企业ID const companyId = localStorage.getItem('CompanyId'); if (companyId) { config.headers.common['CompanyId'] = companyId; } // 通过网站域名获取租户ID // if (getHostname()) { // config.headers.common['Domain'] = getHostname(); // } // 解析二级域名获取租户ID // if (getTenantId()) { // config.headers.common['TenantId'] = getTenantId(); // console.log('domain', getTenantId()); // return config; // } if (TENANT_ID) { console.log(tid,TENANT_ID); config.headers['TenantId'] = TENANT_ID; return config; } } return config; }, (error) => { return Promise.reject(error); } ); /** * 添加响应拦截器 */ service.interceptors.response.use( (res: AxiosResponse>) => { // 登录过期处理 // if (res.data?.code === 401) { // const currentPath = unref(router.currentRoute).path; // if (currentPath == LAYOUT_PATH) { // logout(true); // } else { // Modal.destroyAll(); // Modal.info({ // title: '系统提示', // content: '登录状态已过期, 请退出重新登录!', // okText: '重新登录', // onOk: () => { // logout(false, currentPath); // } // }); // } // return Promise.reject(new Error(res.data.message)); // } // token 自动续期 const token = res.headers[TOKEN_HEADER_NAME.toLowerCase()]; if (token) { setToken(token); } return res; }, (error) => { return Promise.reject(error); } ); export default service;