|
|
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'; |
|
|
|
|
|
function getCookie (cookie_name) { |
|
|
//获取cookie中指定key的value |
|
|
var allcookies = document.cookie; //索引长度,开始索引的位置 |
|
|
var cookie_pos = allcookies.indexOf(cookie_name); // 如果找到了索引,就代表cookie存在,否则不存在 |
|
|
|
|
|
if (cookie_pos != -1) { |
|
|
// 把cookie_pos放在值的开始,只要给值加1即可 |
|
|
//计算取cookie值得开始索引,加的1为“=” |
|
|
cookie_pos = cookie_pos + cookie_name.length + 1; //计算取cookie值得结束索引 |
|
|
var cookie_end = allcookies.indexOf(";", cookie_pos); |
|
|
|
|
|
if (cookie_end == -1) { |
|
|
cookie_end = allcookies.length; |
|
|
} //得到想要的cookie的值 |
|
|
var value = unescape(allcookies.substring(cookie_pos, cookie_end)); |
|
|
} |
|
|
return value; |
|
|
} |
|
|
// 请求拦截器 |
|
|
axios.interceptors.request.use(config => { |
|
|
const token = getCookie('admin-token') |
|
|
if (token) { |
|
|
// 存在将token写入 request header |
|
|
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); |
|
|
// } |
|
|
// } |
|
|
// ); |
|
|
|
|
|
/** |
|
|
* get方法,对应get请求 |
|
|
*/ |
|
|
export function get(url, params) { |
|
|
return new Promise((resolve, reject) => { |
|
|
axios.get(url, { |
|
|
params: params |
|
|
}) |
|
|
.then(res => { |
|
|
if (res.data.status) { |
|
|
switch (res.data.status) { |
|
|
case 200: |
|
|
resolve(res.data); |
|
|
break; |
|
|
case 10000: |
|
|
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; |
|
|
} |
|
|
} |
|
|
|
|
|
}) |
|
|
.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 300: |
|
|
this.$message.error( |
|
|
res.data.errmessage |
|
|
); |
|
|
break; |
|
|
case 500: |
|
|
reject(res.data) |
|
|
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; |
|
|
} |
|
|
} |
|
|
}) |
|
|
.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; |
|
|
} |
|
|
} |
|
|
|
|
|
}) |
|
|
.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; |
|
|
} |
|
|
} |
|
|
|
|
|
}) |
|
|
.catch(err => { |
|
|
reject(err.data) |
|
|
this.$message({ |
|
|
showClose: true, |
|
|
message: '请求失败,请刷新页面重新进行请求', |
|
|
type: 'error' |
|
|
}); |
|
|
}) |
|
|
}); |
|
|
} |