|
|
|
import axios from 'axios';
|
|
|
|
import QS from 'qs';
|
|
|
|
import store from '../store/index'
|
|
|
|
import { Message } from 'element-ui'
|
|
|
|
import router from '../router/index'
|
|
|
|
|
|
|
|
// 环境的切换
|
|
|
|
// if (process.env.NODE_ENV == 'development') {
|
|
|
|
// axios.defaults.baseURL = '/api';
|
|
|
|
// } else if (process.env.NODE_ENV == 'debug') {
|
|
|
|
// axios.defaults.baseURL = '';
|
|
|
|
// } else if (process.env.NODE_ENV == 'production') {
|
|
|
|
// axios.defaults.baseURL = 'http://api.123dailu.com/';
|
|
|
|
// }
|
|
|
|
|
|
|
|
// 请求超时时间
|
|
|
|
axios.defaults.timeout = 30000;
|
|
|
|
|
|
|
|
// post请求头
|
|
|
|
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
|
|
|
|
|
|
|
|
// 请求拦截器
|
|
|
|
axios.interceptors.request.use(config => {
|
|
|
|
let token = store.state.loginToken
|
|
|
|
if(token){
|
|
|
|
config.headers.token = token
|
|
|
|
}
|
|
|
|
return config;
|
|
|
|
}, err => {
|
|
|
|
Message.error({
|
|
|
|
message: '退出登陆',
|
|
|
|
onClose: function () {
|
|
|
|
router.push({name: 'login'});
|
|
|
|
}
|
|
|
|
})
|
|
|
|
return Promise.reject(err);
|
|
|
|
})
|
|
|
|
|
|
|
|
// 响应拦截器
|
|
|
|
// axios.interceptors.response.use(
|
|
|
|
// response => {
|
|
|
|
// consol.log(response.status)
|
|
|
|
// if (response.status === 200) {
|
|
|
|
// return Promise.resolve(response);
|
|
|
|
// } else {
|
|
|
|
// return Promise.reject(response);
|
|
|
|
// }
|
|
|
|
// },
|
|
|
|
// // 服务器状态码不是200的情况
|
|
|
|
// error => {
|
|
|
|
// if (error.response.status) {
|
|
|
|
// switch (error.response.status) {
|
|
|
|
// // 401: 未登录
|
|
|
|
// // 未登录则跳转登录页面,并携带当前页面的路径
|
|
|
|
// // 在登录成功后返回当前页面,这一步需要在登录页操作。
|
|
|
|
// case 500:
|
|
|
|
// router.replace({
|
|
|
|
// path: '/login',
|
|
|
|
// // query: { redirect: router.currentRoute.fullPath }
|
|
|
|
// });
|
|
|
|
// break;
|
|
|
|
// // 403 token过期
|
|
|
|
// // 登录过期对用户进行提示
|
|
|
|
// // 清除本地token和清空vuex中token对象
|
|
|
|
// // 跳转登录页面
|
|
|
|
// case 403:
|
|
|
|
// // Toast({
|
|
|
|
// // message: '登录过期,请重新登录',
|
|
|
|
// // duration: 1000,
|
|
|
|
// // forbidClick: true
|
|
|
|
// // });
|
|
|
|
// // 清除token
|
|
|
|
// sessionStorage.removeItem('token');
|
|
|
|
// store.commit('loginSuccess', null);
|
|
|
|
// // 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面
|
|
|
|
// setTimeout(() => {
|
|
|
|
// router.replace({
|
|
|
|
// path: '/login',
|
|
|
|
// query: {
|
|
|
|
// redirect: router.currentRoute.fullPath
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// }, 1000);
|
|
|
|
// break;
|
|
|
|
// // 404请求不存在
|
|
|
|
// case 404:
|
|
|
|
// router.replace({
|
|
|
|
// path: '/404',
|
|
|
|
// });
|
|
|
|
// break;
|
|
|
|
// // 其他错误,直接抛出错误提示
|
|
|
|
// default:
|
|
|
|
// router.replace({
|
|
|
|
// path: '/500',
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// return Promise.reject(error.response);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// );
|
|
|
|
|
|
|
|
|
|
|
|
function logouts(){
|
|
|
|
store.replaceState({})
|
|
|
|
localStorage.removeItem('ms_username')
|
|
|
|
location.reload()
|
|
|
|
}
|
|
|
|
|
|
|
|
let tokenStatus = {
|
|
|
|
0: '用户未登录,请登录后操作!',
|
|
|
|
1: 'token错误,请重新登录!'
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* get方法,对应get请求
|
|
|
|
*/
|
|
|
|
export function get(url, params){
|
|
|
|
return new Promise((resolve, reject) =>{
|
|
|
|
axios.get(url, {
|
|
|
|
params: params
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
if(typeof res.data == 'number'){
|
|
|
|
this.$message.error(tokenStatus[res.data])
|
|
|
|
setTimeout(logouts,1500)
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
if (res.data.status) {
|
|
|
|
switch (res.data.status) {
|
|
|
|
case 200:
|
|
|
|
resolve(res.data);
|
|
|
|
break;
|
|
|
|
case 10000:
|
|
|
|
resolve(res.data);
|
|
|
|
break;
|
|
|
|
case 500:
|
|
|
|
reject(res.data)
|
|
|
|
break
|
|
|
|
case 300:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 404:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 403:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 401:
|
|
|
|
Message.error("token失效,请重新登录");
|
|
|
|
sessionStorage.removeItem('token');
|
|
|
|
router.replace('/login')
|
|
|
|
break;
|
|
|
|
case 405:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 406:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
resolve(res.data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
reject(err.data)
|
|
|
|
this.$message({
|
|
|
|
showClose: true,
|
|
|
|
message: '请求失败,请刷新页面重新进行请求',
|
|
|
|
type: 'error'
|
|
|
|
});
|
|
|
|
})
|
|
|
|
});
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* post方法,对应post请求
|
|
|
|
*/
|
|
|
|
export function post(url, params) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
axios.post(url,params)
|
|
|
|
.then(res => {
|
|
|
|
if (res.data.status) {
|
|
|
|
switch (res.data.status) {
|
|
|
|
case 200:
|
|
|
|
resolve(res.data);
|
|
|
|
break;
|
|
|
|
case 500:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 300:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 404:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 403:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 401:
|
|
|
|
Message.error("token失效,请重新登录");
|
|
|
|
sessionStorage.removeItem('token');
|
|
|
|
router.replace('/login')
|
|
|
|
break;
|
|
|
|
case 405:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 406:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 10001:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.message
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
resolve(res.data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
reject(err.data)
|
|
|
|
this.$message({
|
|
|
|
showClose: true,
|
|
|
|
message: '请求失败,请刷新页面重新进行请求',
|
|
|
|
type: 'error'
|
|
|
|
});
|
|
|
|
})
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* delete方法,对应delete请求
|
|
|
|
*/
|
|
|
|
export function del(url, params){
|
|
|
|
return new Promise((resolve, reject) =>{
|
|
|
|
axios.delete(url, {
|
|
|
|
params: params
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
if (res.data.status) {
|
|
|
|
switch (res.data.status) {
|
|
|
|
case 200:
|
|
|
|
resolve(res.data);
|
|
|
|
break;
|
|
|
|
// case 300:
|
|
|
|
// this.$message.error(
|
|
|
|
// res.data.errmessage
|
|
|
|
// );
|
|
|
|
// break;
|
|
|
|
case 500:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 404:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
router.replace({
|
|
|
|
path: '/404',
|
|
|
|
});
|
|
|
|
break;
|
|
|
|
case 403:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 401:
|
|
|
|
Message.error("token失效,请重新登录");
|
|
|
|
sessionStorage.removeItem('token');
|
|
|
|
router.replace('/login')
|
|
|
|
break;
|
|
|
|
case 405:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 406:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
resolve(res.data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
reject(err.data)
|
|
|
|
this.$message({
|
|
|
|
showClose: true,
|
|
|
|
message: '请求失败,请刷新页面重新进行请求',
|
|
|
|
type: 'error'
|
|
|
|
});
|
|
|
|
})
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* put修改
|
|
|
|
* @param {} url
|
|
|
|
* @param {*} params
|
|
|
|
*/
|
|
|
|
export function put(url, params){
|
|
|
|
return new Promise((resolve, reject) =>{
|
|
|
|
axios.put(url, params)
|
|
|
|
.then(res => {
|
|
|
|
if (res.data.status) {
|
|
|
|
switch (res.data.status) {
|
|
|
|
case 200:
|
|
|
|
resolve(res.data);
|
|
|
|
break;
|
|
|
|
case 300:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 500:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 404:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 403:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 401:
|
|
|
|
Message.error("token失效,请重新登录");
|
|
|
|
sessionStorage.removeItem('token');
|
|
|
|
router.replace('/login')
|
|
|
|
break;
|
|
|
|
case 405:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 406:
|
|
|
|
this.$message.error(
|
|
|
|
res.data.errmessage
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
resolve(res.data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
reject(err.data)
|
|
|
|
this.$message({
|
|
|
|
showClose: true,
|
|
|
|
message: '请求失败,请刷新页面重新进行请求',
|
|
|
|
type: 'error'
|
|
|
|
});
|
|
|
|
})
|
|
|
|
});
|
|
|
|
}
|