import Request from './request' import apiList from './shopro' import utils from '@/utils/utils.js' // import store from '@/common/store/index.js' import { TOKEN_HEADER_NAME } from '@/config/settings.js' import { storageKeys, storage } from '@/utils/storage.js' export default function api(url, data = {}) { const request = new Request(); let api = getApiObj(url); request.interceptor.request((config, cancel) => { /* 请求之前拦截器 */ let userToken = storage.getStorage(storageKeys.TOKEN) || '' if (api.auth) { if (!userToken) { console.log(config) // 去登录 utils.loginModal('您还未登录,请进行登录!') throw('暂未登录,已阻止此次API请求~'); } } if (userToken) { config.header[TOKEN_HEADER_NAME] = storage.getStorage(storageKeys.TOKEN) } 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.code === 401 || response.data.message.indexOf('Token失效') > -1) { // 服务端返回的状态码不等于200,则reject() uni.hideLoading() utils.loginModal('登录过期,请重新登录!') return } // 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; }