123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import Request from './request';
- import apiList from './api.js'
- const shoproRequest = new Request();
- export default function http(url,
- data = {},
- toastBefore = '', // 请求前加载提示
- toastAfter = false, // 请求后错误提示
- ) {
- let api = getApiPath(url);
- /* 请求之前拦截器 */
- shoproRequest.interceptor.request((config, cancel) => {
- let token = uni.getStorageSync('token');
- if (api.auth && !token) {
- uni.hideLoading();
- uni.showToast({
- title: '暂未登录,请先登录',
- icon: 'none'
- });
- throw (`暂未登录,已阻止此次API请求: '${api.url}'`);
- }
- token && shoproRequest.setConfig(config => {
- config.header.Authorization = token
- })
- if (toastBefore !== '') {
- uni.showLoading({
- title: toastBefore,
- mask: true
- });
- }
- return config
- });
- /* 请求之后拦截器 */
- shoproRequest.interceptor.response((response) => {
- uni.hideLoading();
- if (response.code !== 0) {
- if (toastAfter) {
- uni.showToast({
- title: response.msg || '请求出错,稍后重试',
- icon: 'none',
- duration: 1000,
- mask: true
- });
- }
- }
- // token过期注销
- if (response.code === 161099 || response.code === 160003) {
- uni.showToast({
- title: '登录已过期或注销',
- icon: 'none',
- });
- throw (`登录已过期或注销,已阻止请求: '${api.url}'`);
- }
- return response
- })
- return shoproRequest.request({
- url: api.url,
- data,
- method: api.method
- })
- }
- // 组装接口路径
- function getApiPath(url) {
- let apiArray = url.split(".");
- let api = apiList;
- apiArray.forEach(v => {
- api = api[v];
- });
- return api;
- }
|