108 lines
2.6 KiB
JavaScript
108 lines
2.6 KiB
JavaScript
/* 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};
|