|
|
- 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;
- }
|