You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tanghe-report/report-ui/src/api/axios.js

72 lines
1.6 KiB
JavaScript

import axios from 'axios';
import { Message, MessageBox } from 'element-ui';
axios.defaults.baseURL = process.env.BASE_API
const service = axios.create({
withCredentials: false,
timeout: 60000,
headers: {
'Content-Type': 'application/json',
}
})
service.interceptors.request.use(
config => {
return config
},
error => {
// Do something with request error
Promise.reject(error)
}
)
// response interceptor
service.interceptors.response.use(
response => {
const res = response.data;
if (res.code == 200) {
return res
}
else if (res.code == '50014') {
//登录超时或被登出,弹确认框,用户确认后,跳转到登录页面
MessageBox({
message: "当前登录已失效或异地登录,请重新登录",
type: 'error',
duration: 3 * 1000,
}).then(() => {
sessionStorage.clear();
localStorage.clear();
window.location.href = "/";
}).catch(err => {
})
} else if (res.code == "3100" || res.code == "3101") {
return res;
}
else {
Message({
message: res.repMsg || res.message,
type: 'error',
duration: 3 * 1000
})
return res;
}
},
error => {
var errorStatus = error.response.code;
var errorData = error.response.data;
var messageTxt = "";
if (errorStatus != 200) {
messageTxt = "服务器内部错误,请联系管理员";
} else {
messageTxt = '失败原因:' + errorData.code + '--' + errorData.repMsg;
}
Message({
message: messageTxt,
type: 'error',
duration: 5 * 1000
})
}
)
export default service