import { HTTP_REQUEST_URL, HEADER, TOKENNAME, HEADERPARAMS } from '@/config/app'; import { toLogin, checkLogin } from '@/libs/login'; import { useAppStore } from '@/stores/app' import { useToast } from '@/hooks/useToast' /** * 发送请求 */ function baseRequest(url, method, data, { noAuth = false, noVerify = false }, params) { const appStore = useAppStore(); const { Toast } = useToast(); let Url = HTTP_REQUEST_URL,header = HEADER const TOKEN = 'Bearer ' + appStore.token if (params != undefined) { header = HEADERPARAMS; } // if (!noAuth) { // //登录过期自动登录 // if (!TOKEN && !checkLogin()) { // toLogin(); // return Promise.reject({ // code: 401, // message: '未登录' // }); // } // } if (TOKEN) header[TOKENNAME] = TOKEN; return new Promise((reslove, reject) => { Url=HTTP_REQUEST_URL || 'http://api.front.hdq.xbdzz.cn' uni.request({ url: Url + '/' + url, method: method || 'GET', header: header, timeout: 30000, data: data || {}, success: (res) => { if (noVerify) reslove(res.data, res); else if (res.data.code == 200) reslove(res.data, res); else if ([410000, 410001, 410002, 401,403].indexOf(res.data.code) !== -1) { // toLogin(); appStore.LOGOUT(); Toast({title: res.data.msg || '登录过期,请重新登录'}); reject(res.data); } else Toast({title: res.data.msg || '系统错误'}) reject(res.data.msg || '系统错误'); }, fail: (msg) => { Toast({title: '请求失败'}) reject('请求失败'); } }) }); } const request = {}; ['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => { request[method] = (api, data, opt, params) => baseRequest(api, method, data, opt || {}, params) }); export default request;