import Request from './request'
|
|
import apiList from './shopro'
|
|
// import store from '@/common/store/index.js'
|
|
|
|
export default function api(url, data = {}) {
|
|
const request = new Request();
|
|
let api = getApiObj(url);
|
|
request.interceptor.request((config, cancel) => { /* 请求之前拦截器 */
|
|
if (api.auth) {
|
|
let userToken = uni.getStorageSync('userToken');
|
|
if (!userToken) {
|
|
// store.commit('LOGIN_TIP', true)
|
|
// store.commit('OUT_LOGIN');
|
|
throw('暂未登录,已阻止此次API请求~');
|
|
}
|
|
}
|
|
if (uni.getStorageSync('userToken')) {
|
|
config.header['X-Access-Token'] = uni.getStorageSync('userToken');
|
|
}
|
|
return config
|
|
});
|
|
|
|
request.interceptor.response((response) => { /* 请求之后拦截器 */
|
|
// if (response.data.code === 0) { // 服务端返回的状态码不等于200,则reject()
|
|
// uni.showToast({
|
|
// title: response.data.msg || '请求出错,稍后重试',
|
|
// icon: 'none',
|
|
// duration: 1000,
|
|
// mask: true
|
|
// });
|
|
// }
|
|
|
|
if (response.data.status === 7001) { // 服务端返回的状态码不等于200,则reject()
|
|
uni.clearStorageSync()
|
|
uni.showToast({
|
|
title: '登录过期,请重新登录'
|
|
})
|
|
uni.reLaunch({
|
|
url: '/pages/login/login'
|
|
})
|
|
// store.commit('LOGIN_TIP', true)
|
|
}
|
|
// if (response.config.custom.verification) { // 演示自定义参数的作用
|
|
// return response.data
|
|
// }
|
|
return response
|
|
}, (response) => { // 预留可以日志上报
|
|
return response
|
|
})
|
|
|
|
let option = {
|
|
url: api.url,
|
|
data,
|
|
method: api.method
|
|
}
|
|
if (api.headers!=null){
|
|
option.header = api.headers
|
|
}
|
|
return request.request(option)
|
|
}
|
|
|
|
function getApiObj(url) {
|
|
let apiArray = url.split(".");
|
|
let api = apiList;
|
|
apiArray.forEach(v => {
|
|
api = api[v];
|
|
});
|
|
return api;
|
|
}
|