130 lines
3.8 KiB
JavaScript
130 lines
3.8 KiB
JavaScript
|
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-USER-TOKEN'] = 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?return_url=' + 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;
|