/* eslint-disable */ import Request from './request'; import {refreshToken} from '@/api/login'; import indexConfig from '@/config/index.config'; import mHelper from '@/utils/helper'; import store from '@/store'; const http = new Request(); // request全局参数设置 http.setConfig(config => { /* 设置全局配置 */ config.baseUrl = indexConfig.baseUrl; /* 根域名不同 */ const systemInfo = uni.getSystemInfoSync(); const systemInfoHeaders = { 'device-name': systemInfo.brand, // 设备名称 width: systemInfo.screenWidth, // 屏幕宽度 height: systemInfo.screenHeight, // 屏幕高度 os: systemInfo.platform, // 客户端平台 'os-version': systemInfo.system // 操作系统版本 }; config.header = { ...config.header, ...systemInfoHeaders }; return config; }); let isRefreshing = false; let requests = []; http.interceptor.request( config => { /* 请求之前拦截器 */ config.header['Authorization'] = 'Bearer ' + uni.getStorageSync('accessToken'); // 单商户 // config.header['merchant-id'] = uni.getStorageSync('merchantId') || 1; return config; }, error => { return Promise.reject(error); } ); // 刷新refreshToken async function handleRefreshToken(refresh_token) { const params = {}; params.group = mHelper.platformGroupFilter(); params.refresh_token = refresh_token; await http.post(refreshToken, params).then(async r => { store.commit('login', r); isRefreshing = false; }); } http.interceptor.response( async response => { /* 请求之后拦截器 */ switch (response.data.code) { case 200: return response.data.data; case 400: mHelper.toast('错误的请求'); return Promise.reject(response.data.msg); break; case 401: uni.removeStorageSync('accessToken'); await store.commit('logout'); uni.showModal({ content: '会话已过期,是否跳转登录页面?', success: confirmRes => { if (confirmRes.confirm) { mHelper.backToLogin(); throw response.data.message; } } }); throw response.data.message; break; case 405: mHelper.toast('当前操作不被允许'); return Promise.reject(response.data.msg); case 404: mHelper.toast(response.data.msg); return Promise.reject(response.data.msg); case 888: window.location.href=response.data; case 429: mHelper.toast(response.data.msg); return Promise.reject(response.data.msg); case 500: mHelper.toast(response.data.msg); return Promise.reject(response.data.msg); default: mHelper.toast(response.data.msg); return Promise.reject(response.data.msg); } }, error => { return Promise.reject(error); } ); export {http};