import axios from 'axios' import { Toast } from 'vant';
import store from '@/store/index.js' import router from '@/router' import { getToken } from '@/libs/util'
const instance = axios.create({ timeout: 105000, headers: { 'Content-Type': 'application/json; charset=utf-8' } })
/**
- 请求拦截 */ instance.interceptors.request.use(async config => { if (getToken()) { // 如果是CAS平台 // 在请求头部增加 切换的租户 字段(User-Information)发给后台 config.headers.Authorization = getToken() // request.headers['Tenant_id'] = getCurrentTenantId() config.headers['Tenant-ID'] = localStorage.getItem('tenantId') if (config.url.indexOf('login') === -1 && config.url.indexOf('refreshToken') === -1 && config.url.indexOf('selectUnReadMessage') === -1) { await store.dispatch('refreshToken') } } return config }, error => { return Promise.reject(error) })
/**
- 响应拦截 */ instance.interceptors.response.use(response => { if ((response.data.code === 'E0B00001' && response.data.data === 'E0B00002') || response.data.code == 401) { //Toast(response.data.msg); return router.replace({ name: 'transfer', }) } return Promise.resolve(response) }, error => { if (error.response.status === 500 || error.response.status === 502) { Toast(error.response.data.msg); } else if (error.response.status == 401) { //token失效 Toast(error.response.data.msg); router.replace({ name: 'transfer', }) } else if (error.response.status === 404) { Toast('请求接口不存在' + error.response.status); } else { Toast(error.response.status); } return Promise.reject(error)
}) const http = { get: (path, data, config) => instance.get(path, { params: data, ...config }), post: (path, data, config) => instance.post(path, data, config), put: (path, data, config) => instance.put(path, data, config), delete: (path, data, config) => instance.delete(path, { data, ...config }) } export default http