| | |
| | | import axios from 'axios'; |
| | | import { ElMessage, ElMessageBox } from 'element-plus'; |
| | | import { ElMessage } from 'element-plus'; |
| | | import { Session } from '/@/utils/storage'; |
| | | import {useUserInfo} from "/@/stores/userInfo"; |
| | | import {storeToRefs} from "pinia"; |
| | | import JSONbig from 'json-bigint' |
| | | import JSONbig from 'json-bigint'; |
| | | |
| | | // var jsonBig = require('json-bigint')({ "storeAsString": true }); |
| | | // 配置新建一个 axios 实例 |
| | | const service = axios.create({ |
| | | baseURL: import.meta.env.VITE_API_URL as any, |
| | | timeout: 50000, |
| | | headers: { 'Content-Type': 'application/json' }, |
| | | baseURL: import.meta.env.VITE_API_URL as any, |
| | | timeout: 50000, |
| | | headers: { 'Content-Type': 'application/json' } |
| | | }); |
| | | |
| | | service.interceptors.request.use( |
| | | (config) => { |
| | | // 在发送请求之前做些什么 token |
| | | if (Session.get('token')) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | (<any>config.headers).common['Authorization'] = `${Session.get('token')}`; |
| | | (<any>config.headers).common['uid'] = `${Session.get('uid')}`; |
| | | } |
| | | return config; |
| | | }, |
| | | (error) => { |
| | | // 对请求错误做些什么 |
| | | return Promise.reject(error); |
| | | } |
| | | (config) => { |
| | | // 在发送请求之前做些什么 token |
| | | if (Session.get('token')) { |
| | | (<any>config.headers).common['Authorization'] = `${Session.get('token')}`; |
| | | (<any>config.headers).common['uid'] = `${Session.get('uid')}`; |
| | | } |
| | | return config; |
| | | }, |
| | | (error) => { |
| | | // 对请求错误做些什么 |
| | | return Promise.reject(error); |
| | | } |
| | | ); |
| | | |
| | | service.defaults.transformResponse = [ |
| | | function(data) { |
| | | |
| | | function (data) { |
| | | try { |
| | | // 正常同通过return JSON.parse(data)对数据进行转换 |
| | | // 但是转化完成的数据可能超出安全数据长度 |
| | | // 因此我们定制使用第三包来转化 |
| | | return JSONbig.parse(data) |
| | | return JSONbig.parse(data); |
| | | } catch (err) { |
| | | console.log(err); |
| | | // 转换失败返回一个空对象 |
| | | return {} |
| | | return {}; |
| | | } |
| | | } |
| | | ] |
| | | ]; |
| | | |
| | | service.interceptors.response.use( |
| | | |
| | | (response) => { |
| | | // 对响应数据做点什么 |
| | | if(response.data.code && (response.data.code ==='A0215' || response.data.code === 'A0214' || response.data.code === 'A0213')){ |
| | | Session.clear() |
| | | window.location.href = '/' |
| | | return Promise.reject(response) |
| | | } |
| | | // if(response.data.code && response.data.code !== '200'){ |
| | | return Promise.resolve(response) |
| | | // } |
| | | // Session.clear() |
| | | // window.location.href = '/' |
| | | // return Promise.reject(response) |
| | | // const res = response.data; |
| | | // debugger |
| | | // if (res.code && res.code !== 0) { |
| | | // // `token` 过期或者账号已在别处登录 |
| | | // if (res.code === 401 || res.code === 4001) { |
| | | // Session.clear(); // 清除浏览器全部临时缓存 |
| | | // window.location.href = '/'; // 去登录页 |
| | | // ElMessageBox.alert('你已被登出,请重新登录', '提示', {}) |
| | | // .then(() => {}) |
| | | // .catch(() => {}); |
| | | // } |
| | | // return Promise.reject(service.interceptors.response); |
| | | // } else { |
| | | // return response.data; |
| | | // } |
| | | }, |
| | | (error) => { |
| | | // 对响应错误做点什么 |
| | | if (error.message.indexOf('timeout') != -1) { |
| | | ElMessage.error('网络超时'); |
| | | } else if (error.message == 'Network Error') { |
| | | ElMessage.error('网络连接错误'); |
| | | } else { |
| | | if (error.response.data) ElMessage.error(error.response.statusText); |
| | | else ElMessage.error('接口路径找不到'); |
| | | } |
| | | return Promise.reject(error); |
| | | } |
| | | (response) => { |
| | | // 对响应数据做点什么 |
| | | if (response.data.code && (response.data.code === 'A0215' || response.data.code === 'A0214' || response.data.code === 'A0213')) { |
| | | Session.clear(); |
| | | window.location.href = '/'; |
| | | return Promise.reject(response); |
| | | } |
| | | // if(response.data.code && response.data.code !== '200'){ |
| | | return Promise.resolve(response); |
| | | // } |
| | | // Session.clear() |
| | | // window.location.href = '/' |
| | | // return Promise.reject(response) |
| | | // const res = response.data; |
| | | // debugger |
| | | // if (res.code && res.code !== 0) { |
| | | // // `token` 过期或者账号已在别处登录 |
| | | // if (res.code === 401 || res.code === 4001) { |
| | | // Session.clear(); // 清除浏览器全部临时缓存 |
| | | // window.location.href = '/'; // 去登录页 |
| | | // ElMessageBox.alert('你已被登出,请重新登录', '提示', {}) |
| | | // .then(() => {}) |
| | | // .catch(() => {}); |
| | | // } |
| | | // return Promise.reject(service.interceptors.response); |
| | | // } else { |
| | | // return response.data; |
| | | // } |
| | | }, |
| | | (error) => { |
| | | // 对响应错误做点什么 |
| | | if (error.message.indexOf('timeout') != -1) { |
| | | ElMessage.error('网络超时'); |
| | | } else if (error.message == 'Network Error') { |
| | | ElMessage.error('网络连接错误'); |
| | | } else { |
| | | if (error.response.data) ElMessage.error(error.response.statusText); |
| | | else ElMessage.error('接口路径找不到'); |
| | | } |
| | | return Promise.reject(error); |
| | | } |
| | | ); |
| | | |
| | | export default service; |