You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
3.6 KiB
133 lines
3.6 KiB
import util from '../utils/util';
|
|
const islog = true
|
|
|
|
export class Server {
|
|
request(url,data,method,header,isDefaultGet,failMsg){
|
|
return new Promise(async (rs,rj)=>{
|
|
|
|
// const _token = uni.getStorageSync('venueData').token || '';
|
|
// if(_token)data['token'] = _token;
|
|
// if(method === 'POST'&&_token)url = url + `?token=${_token}`
|
|
|
|
uni.request({
|
|
url,
|
|
timeout: 300000,
|
|
sslVerify:false,
|
|
data,
|
|
method, // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
|
|
header: {...header}, // 设置请求的 header // {'custom-header': 'application/json'}
|
|
success: res=>{
|
|
|
|
if(res.extension)util.updateTimeDifference(res.extension); //每次请求都更新时间差
|
|
|
|
if(islog){
|
|
console.log('islog req success---->')
|
|
let weburl = getWebURL(data,url)
|
|
let temp = url.split("?")[0].split("/")
|
|
let postName = temp[temp.length-1]
|
|
console.log("-------------------->> ["+postName+"][log]\n"+"请求 Data: \n" + JSON.stringify(data)+ "\n URL:\n"+weburl+"\n <<-------------------- ["+postName+"][log] ↑↑↑\n")
|
|
}
|
|
|
|
if(isDefaultGet){
|
|
if(failMsg == '')throw Error('默认回调,失败提示不能为空 key -> failMsg');
|
|
defaultGet({
|
|
url,
|
|
data,
|
|
res,
|
|
failMsg,
|
|
resolve: rs,
|
|
reject: rj
|
|
});
|
|
return
|
|
}
|
|
|
|
|
|
rs(res);
|
|
},
|
|
fail: err=>{
|
|
if(islog)console.log('req fail---->',{
|
|
link: url,
|
|
query: data,
|
|
method: method,
|
|
data: err,
|
|
})
|
|
util.hideLoad();
|
|
if(typeof(err.errMsg) == 'string'&&(err.errMsg.indexOf('timeout')!=-1 || err.errMsg.indexOf('interrupted')!=-1 || err.errMsg.indexOf('请求超时')!=-1)){
|
|
util.showNone('网络超时!');
|
|
}else if(typeof(err.errMsg) == 'string'){
|
|
util.showNone(err.errMsg);
|
|
}else{
|
|
util.showNone('请求数据失败!请检查当前网络状态。');
|
|
}
|
|
rj(err);
|
|
},
|
|
complete(result) {
|
|
// if(util.debug){
|
|
util.showLog(data,url,result)
|
|
// }
|
|
|
|
}
|
|
|
|
})
|
|
})
|
|
|
|
function defaultGet({res,failMsg,resolve,reject,url,data}){
|
|
if(res.data.code == 0){
|
|
resolve(res.data.data);
|
|
}else{
|
|
util.hideLoad();
|
|
util.showNone(res.data.message || failMsg || '');
|
|
if(res.data.code==401){//用户异常
|
|
uni.showModal({
|
|
title: '提示',
|
|
content: res.data.message,
|
|
success: function (res) {
|
|
if (res.confirm) {
|
|
console.log('用户点击确定');
|
|
util.routeTo('/pages/login/index','rL')
|
|
} else if (res.cancel) {
|
|
console.log('用户点击取消');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
reject({url,res,data});
|
|
}
|
|
}
|
|
}
|
|
get({url,data={},header={},isDefaultGet=true,failMsg=''}){
|
|
let params = {}
|
|
header = util.resetHeader(header,url,data,params)
|
|
return this.request(url,data,'GET',header,isDefaultGet,failMsg);
|
|
}
|
|
|
|
post({url,data={},header={},isDefaultGet=true,failMsg=''}){
|
|
let params = {}
|
|
header = util.resetHeader(header,url,data,params)
|
|
return this.request(url,data,'POST',header,isDefaultGet,failMsg);
|
|
}
|
|
// post({url,data={},header={'custom-header': 'application/json'},isDefaultGet=true,failMsg=''}){
|
|
// return this.request(url,data,'POST',header,isDefaultGet,failMsg);
|
|
// }
|
|
|
|
uploadFile({url,filePath,onProgressCallBack,formData={}}){
|
|
return new Promise((rs,rj)=>{
|
|
let uploadTask = wx.uploadFile({
|
|
url,filePath,formData,name:'file',success:rs,fail:rj
|
|
})
|
|
uploadTask.onProgressUpdate(res=>onProgressCallBack&&onProgressCallBack(res))
|
|
})
|
|
}
|
|
}
|
|
|
|
function getWebURL(data,url){
|
|
let result = ""
|
|
for(var i in data){
|
|
result+=`&${i}=${data[i]}`
|
|
}
|
|
return url+"?"+result.slice(1)
|
|
}
|
|
|
|
export const ox = new Server();
|
|
|
|
export default { ox, Server };
|