const { miniProgram } = wx.getAccountInfoSync(); const envVersion = miniProgram.envVersion; let baseUrl = ''; if(envVersion=='develop'){ baseUrl = 'https://api-dev.beefast.co'; }else{ baseUrl = 'https://api.beefast.co' } let app = getApp(); let navLoginPromise = null; const sendRequest = (options)=>{ if(!app)app = getApp(); return new Promise((rs,rj)=>{ wx.request({ url: `${baseUrl}${options.url}`, success:(result)=>{ //Http Request的状态 if(result.statusCode==200){ //后端的自定义状态 if(result.data.code==200){ rs(result.data.data); }else{ if(!options.options.noTips){ wx.showToast({ icon:'error', title: result.data.message, }); } rj(result.data); } }else if(result.statusCode==401){ const pages = getCurrentPages(); const currentPages = pages[pages.length-1]; if(navLoginPromise){ return; } if(currentPages&¤tPages.route.indexOf('pages/login')>-1){ //用户先打开了小程序,然后又点开了朋友的分享页 navLoginPromise = wx.redirectTo({ url: '/pages/user/login/index', }); return; } navLoginPromise = wx.navigateTo({ url: '/pages/user/login/index', }); navLoginPromise.then(()=>{ navLoginPromise = null; }) }else{ wx.showToast({ icon:'error', title: result.data.message||result.data.detail||'发生错误', }) rj(result.data); } }, method:options.method, data:options.data, header:{ Authorization: `Bearer ${app?.globalData?.accessToken}` }, fail:(res)=>{ wx.showToast({ icon:'error', title: 'Request Error', }) rj(res); } }) }) } export default { baseUrl:baseUrl, get(url,data,options){ return sendRequest({url,method:'get',data,options:options||{}}); }, post(url,data,options){ return sendRequest({url,method:'post',data,options:options||{}}); }, put(url,data,options){ return sendRequest({url,method:'put',data,options:options||{}}); }, delete(url,data,options){ return sendRequest({url,method:'delete',data,options:options||{}}); } }