You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
383 lines
12 KiB
383 lines
12 KiB
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 = sessionStorage.getItem('token') |
|
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.clear() |
|
sessionStorage.clear() |
|
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' |
|
}); |
|
}) |
|
}); |
|
} |