import axios from 'axios'; import { ElMessage } from 'element-plus' import tools from '@/utils/tools' import router from '../router'; // axios.defaults.baseURL = '/api' axios.defaults.timeout = 120000 // HTTP request 拦截器 axios.interceptors.request.use( (config) => { let token = tools.data.get('token'); if (token) { config.headers['x-token'] = token } return config; }, (error) => { return Promise.reject(error); } ); // HTTP response 拦截器 axios.interceptors.response.use( (response) => { return response; }, (error) => { if (error.response) { if (error.response.status == 401) { ElMessage.error("请重新登录!"); // window.location.href = '/#/login?returnURL=' + window.location.href window.location.href = 'http://220.191.238.50:996/api/login?returnURL=' + window.location.href } else if (error.response.status == 404) { ElMessage.error("Status:404,正在请求不存在的服务器记录!"); } else if (error.response.status == 500) { ElMessage.error({ title: '请求错误', message: "Status:500,服务器发生错误!" }); } else { ElMessage.error(`Status:${error.response.status},未知错误!`); } } else { ElMessage.error("请求服务器无响应!"); } return Promise.reject(error.response); } ); var http = { /** get 请求 * @param {接口地址} url * @param {请求参数} params */ get: function (url, params) { return new Promise((resolve, reject) => { axios.get(url, { params: params }) .then((response) => { if (response.data.code == 400 && response.data.msg) { ElMessage.error(response.data.msg); } resolve(response.data); }) .catch((error) => { reject(error); }); }) }, /** post 请求 * @param {接口地址} url * @param {请求参数} params */ post: function (url, params) { return new Promise((resolve, reject) => { axios.post(url, params) .then((response) => { if (response.data.code == 400 && response.data.msg) { ElMessage.error(response.data.msg); } resolve(response.data); }) .catch((error) => { reject(error); }); }) }, put: function (url, params) { return new Promise((resolve, reject) => { axios.put(url, params) .then((response) => { if (response.data.code == 400 && response.data.msg) { ElMessage.error(response.data.msg); } resolve(response.data); }) .catch((error) => { reject(error); }); }) }, delete: function (url, params) { return new Promise((resolve, reject) => { axios.delete(url, params) .then((response) => { if (response.data.code == 400 && response.data.msg) { ElMessage.error(response.data.msg); } resolve(response.data); }) .catch((error) => { reject(error); }); }) }, download: function (url) { let user = tools.data.get('user'); let token = "x-token=" + user.token; url = url + (url.indexOf("?") > 0 ? "&" : "?") + token; window.open(url); } } export default http;