import axios from 'axios' // import { ElLoading, ElMessage } from 'element-plus' import router from '@/router' import { useSettingStore } from '@/stores/setting.js' // request是一个axios实例,每一个实例你都可以单独定制它的baseURL,超时时间,请求头和一些其他配置项。 const baseUrl = import.meta.env.VITE_APP_API_BASE_URL + '/airport/admin' //接口统一域名 // const baseUrl = '/airport/admin' // 设置统一的url // axios.defaults.baseURL = '/airport/admin' const instance = axios.create({ baseURL: baseUrl, timeout: 60 * 1000, //设置超时 headers: { 'Content-Type': 'application/json;charset=UTF-8;', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', '.AspNetCore.Culture': 'c=zh-Hans|uic=zh-Hans', }, }) let loading //正在请求的数量 let requestCount = 0 //显示loading // const showLoading = () => { // if (requestCount === 0) { // // loading = ElLoading.service({ // // fullscreen: true, // // text: 'Loading ', // // background: 'rgba(0, 0, 0, 0.7)', // // }) // } // requestCount++ // } //隐藏loading // const hideLoading = () => { // requestCount-- // if (requestCount == 0) { // loading.close() // } // } //请求拦截器 instance.interceptors.request.use( (config) => { // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了 // const { token_type, access_token } = userInfo config.headers.Authorization = `${localStorage.getItem('access_token')}` config.headers['Client-Id'] = import.meta.env.VITE_APP_CLIENT_ID //若请求方式为post,则将data参数转为JSON字符串 if (config.method === 'POST') { config.data = JSON.stringify(config.data) } return config }, (error) => // 对请求错误做些什么 Promise.reject(error), ) //响应拦截器 instance.interceptors.response.use( (response) => { // hideLoading() if (response.data.code == 402) { // ElMessage.error(response.data.msg) router.push('/') } //响应成功 // console.log('拦截器报错'); else return response.data }, (error) => { // hideLoading() //响应错误 let message = '' if (error.response && error.response.status) { const status = error.response.status switch (status) { case 400: message = '请求错误' break case 401: message = '请求错误' break case 404: message = '请求地址出错' break case 408: message = '请求超时' break case 500: message = '服务器内部错误!' break case 501: message = '服务未实现!' break case 502: message = '网关错误!' break case 503: message = '服务不可用!' break case 504: message = '网关超时!' break case 505: message = 'HTTP版本不受支持' break default: message = '请求失败' } // ElMessage.error(message) return Promise.reject(error) } return Promise.reject(error) }, ) export default instance