|
|
|
|
/**
|
|
|
|
|
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
import errorCode from "./errorCode";
|
|
|
|
|
|
|
|
|
|
// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作
|
|
|
|
|
const install = (Vue, vm) => {
|
|
|
|
|
|
|
|
|
|
// 通用请求头设定
|
|
|
|
|
const ajaxHeader = 'x-ajax';
|
|
|
|
|
const sessionIdHeader = 'Authorization';
|
|
|
|
|
const contentType = 'Content-Type';
|
|
|
|
|
|
|
|
|
|
// 请求参数默认配置
|
|
|
|
|
Vue.prototype.$u.http.setConfig({
|
|
|
|
|
baseUrl: vm.vuex_config.baseUrl,
|
|
|
|
|
originalData: true,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 请求拦截,配置Token等参数
|
|
|
|
|
Vue.prototype.$u.http.interceptor.request = (req) => {
|
|
|
|
|
if (!req.header) {
|
|
|
|
|
req.header = [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 默认指定返回 JSON 数据
|
|
|
|
|
if (!req.header[ajaxHeader]) {
|
|
|
|
|
req.header[ajaxHeader] = 'json';
|
|
|
|
|
req.header[contentType] = 'application/json'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 设定传递 Token 认证参数
|
|
|
|
|
if (!req.header[sessionIdHeader] && vm.vuex_token) {
|
|
|
|
|
req.header[sessionIdHeader] = vm.vuex_token;
|
|
|
|
|
}
|
|
|
|
|
return req;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 响应拦截,判断状态码是否通过
|
|
|
|
|
Vue.prototype.$u.http.interceptor.response = async (res, req) => {
|
|
|
|
|
const code = res.data.code;
|
|
|
|
|
const message = res.data.msg;
|
|
|
|
|
|
|
|
|
|
// token过期,重新登录
|
|
|
|
|
if (code === 401) {
|
|
|
|
|
vm.$u.toast('身份过期,请重新登录');
|
|
|
|
|
// vm.$u.api.logout().then(res => {
|
|
|
|
|
//清空存储信息
|
|
|
|
|
vm.$u.vuex('vuex_token', '')
|
|
|
|
|
vm.$u.vuex('vuex_user', {})
|
|
|
|
|
vm.$u.vuex('vuex_code', '')
|
|
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
uni.reLaunch({
|
|
|
|
|
url: "/pages/login/login",
|
|
|
|
|
});
|
|
|
|
|
}, 500);
|
|
|
|
|
|
|
|
|
|
// });
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if (code !== 200) {
|
|
|
|
|
// vm.$u.toast(message);
|
|
|
|
|
// return Promise.reject(new Error(message))
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
return res.data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 封装 post json 请求
|
|
|
|
|
vm.$u.postJson = (url, data = {}, header = {}) => {
|
|
|
|
|
header['content-type'] = 'application/json';
|
|
|
|
|
return vm.$u.http.request({
|
|
|
|
|
url,
|
|
|
|
|
method: 'POST',
|
|
|
|
|
data
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
install
|
|
|
|
|
}
|