92 lines
2.4 KiB
JavaScript
92 lines
2.4 KiB
JavaScript
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||{}});
|
|
}
|
|
} |