import store from '@/store' import config from '@/common/config.js' import { getToken } from '@/utils/auth' import errorCode from '@/utils/errorCode' import { toast, showConfirm, tansParams } from '@/utils/common' import modal from "@/plugins/modal" let timeout = 10000 // 白名单中的接口可走宏天线上,剩余的需走mock接口 const baseUrl = config.baseUrl const mockUrl = config.mockUrl const request = config => { // 是否需要设置 token const isToken = (config.headers || {}).isToken === false config.header = config.header || {} if (getToken() && !isToken) { config.header['Authorization'] = 'Bearer ' + getToken() } // get请求映射params参数 if (config.params) { let url = config.url + '?' + tansParams(config.params) url = url.slice(0, -1) config.url = url } return new Promise((resolve, reject) => { uni.request({ method: config.method || 'get', timeout: config.timeout || timeout, url: config.baseUrl || baseUrl + config.url, //测试环境 data: config.data, header: config.header, dataType: config.dataType || 'json' }).then(response => { let res = response; // let [error, res] = response; // console.log(res, error); // if (error) { // toast('后端接口连接异常') // reject('后端接口连接异常') // return // } const code = res.statusCode == '200' ? ((res.data.errorCode === '200' || !res.data .errorCode) ? (res.data.code || 200) : parseInt(res.data.errorCode)) : res .statusCode; const msg = errorCode[code] || res.data.message || errorCode['default'] // console.log("code码",code); if (code === 401) { if (isLoginPage()) { return } if (getApp().globalData.isOpenTokenExpiration) { uni.reLaunch({ url: '/pages/login' }) return } modal.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录?', '提示').then(async (res) => { if (res) { uni.reLaunch({ url: '/pages/login' }) } }).catch(() => { console.log("取消"); }); getApp().globalData.isOpenTokenExpiration = true; reject('无效的会话,或者会话已过期,请重新登录。') } else if (code === 500) { console.log("请求提示", msg); if(msg !== '该手机号未注册'){ toast(msg) } reject({code,msg}) } else if (code !== 200) { console.log("请求提示", msg); reject(msg) } resolve(res.data) }) .catch(error => { let { message } = error if (message === 'Network Error') { message = '后端接口连接异常' } else if (message.includes('timeout')) { message = '系统接口请求超时' } else if (message.includes('Request failed with status code')) { message = '系统接口' + message.substr(message.length - 3) + '异常' } toast(message) reject(error) }) }) } function isLoginPage() { const pages = getCurrentPages() // 当前页面 const page = pages?.[pages.length - 1]?.$page?.fullPath return !page || page === '/pages/login' || page === '/pages/code'|| page === '/pages/jump/weChatOffAcc' } export default request