import BASE_URL from '@/api/env.js' //引入接口共用地址 import RequestManager from '@/utils/requestManager.js' import {toast, clearStorageSync, getStorageSync, useRouter} from '@/utils/utils.js' import systemConfig from '@/config/config.js'; const manager = new RequestManager() // 先写死调接口 uni.setStorageSync('token', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiIwOGRkNzFiZC01N2MxLTQ1YmMtODBiYS0xMjkzYjU4MTViMmEiLCJ1bmlxdWVfbmFtZSI6IuS_nea0gSIsInJvbGUiOiJVc2VyIiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbW9iaWxlcGhvbmUiOiIxODE3NDAxMDU2MiIsImdyb3Vwc2lkIjoiNGIyZDk2NjItYTc2OC0wOGYyLWEwYzgtNzYyYjhjNzZkYTJhIiwibmJmIjoxNzQ0MTgyMTM4LCJleHAiOjE3NDQxODU3MzgsImlhdCI6MTc0NDE4MjEzOH0.QQNQNiKe14L-anWPNAKcvLXtzy-eo1FL9hhTsbLKAxg') const baseRequest = async (url, method, data = {}, loading = true) =>{ let requestId = manager.generateId(method, url, data) if(!requestId) { console.log('重复请求') } if(!requestId)return false; const header = {} header.Authorization = getStorageSync(systemConfig.token) || '' return new Promise((reslove, reject) => { loading && uni.showLoading({title: 'loading'}) uni.request({ url: BASE_URL + url, method: method || 'GET', header: header, timeout: 10000, data: data || {}, complete: ()=>{ uni.hideLoading() manager.deleteById(requestId) }, success: (successData) => { //console.log(successData) const res = successData.data if(successData.statusCode == 200){ // 业务逻辑,自行修改,401是服务器上返回该token过期,过期后跳转到登陆页面 if(res.code > 400){ clearStorageSync('token') useRouter(systemConfig.login_page, 'reLaunch') }else{ reslove(res) } }else{ console.log('网络连接失败,请稍后重试' ,url) toast('网络连接失败,请稍后重试') reject(res) } }, fail: (msg) => { console.log("请求:"+BASE_URL + url +',发生错误:', err) toast('网络连接失败,请稍后重试') reject(msg) } }) }) } const request = {}; ['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => { request[method] = (api, data, loading) => baseRequest(api, method, data, loading) }) export default request