import axios from 'axios'; import { ElMessage } from 'element-plus'; const debug = true; let ip1 = 'http://47.100.191.150:9029/'; // console.log(import.meta.env); if (import.meta.env.VITE_DATA_MODE == 'jingan') { ip1 = 'http://114.215.109.124:8805/'; } if (debug) { ip1 = 'http://192.168.0.110:8084/'; // ip1 = 'http://locahost:8084/'; } const $http = axios.create({ baseURL: ip1, timeout: 30000 }); //添加拦截器 [$http].forEach((i) => { // 添加请求拦截器 i.interceptors.request.use( function (config) { // 在发送请求之前做些什么 if (import.meta.env.DEV) { console.log('==>请求开始'); console.log(`${config.baseURL}${config.url}`); if (config.data) { console.log('==>请求数据', config.data); } } return config; }, function (error) { // 对请求错误做些什么 if (import.meta.env.DEV) { console.log('==>请求开始'); console.log(error); } ElMessage({ message: error, type: 'error' }); return Promise.reject(error); } ); // 添加响应拦截器 i.interceptors.response.use( function (response) { // 2xx 范围内的状态码都会触发该函数。 // 对响应数据做点什么 if (import.meta.env.DEV) { console.log(response); console.log('==>请求结束'); } if (response.status == 200) { if ( response.data.success != undefined && response.data.success != null ) { if (response.data.success == true) { return response; } else { ElMessage({ message: response.data.message, type: 'error' }); return Promise.reject(response.data.message); } } else { return response; } } else { return Promise.reject(response); } }, function (error) { // 超出 2xx 范围的状态码都会触发该函数。 // 对响应错误做点什么 if (import.meta.env.DEV) { console.log(error); console.log('==>请求结束'); } ElMessage({ message: error, type: 'error' }); return Promise.reject(error); } ); }); // const $http = { // get(url) { // const controller = new AbortController(); // return { // con: controller, // resp: axiosInstance.get(url, { signal: controller.signal }) // }; // }, // put(url, data) { // const controller = new AbortController(); // return { // con: controller, // resp: axiosInstance.put(url, data, { signal: controller.signal }) // }; // }, // post(url, data) { // const controller = new AbortController(); // return { // con: controller, // resp: axiosInstance.post(url, data, { signal: controller.signal }) // }; // }, // delete(url) { // const controller = new AbortController(); // return { // con: controller, // resp: axiosInstance.delete(url, { signal: controller.signal }) // }; // } // }; function resToData(res) { res.resp = res.resp.then((res) => res.data); return res; } export { $http, resToData };