Files
cashier_wx/common/api/request.js

115 lines
2.5 KiB
JavaScript

export default (params) => {
let url = params.url;
let method = params.method || "get";
let data = params.data || {};
let type = params.type || 1;
let toast = params.toast || true;
let userInfo=uni.cache.get('userInfo')||{id:''}
let header = {
version: uni.conf.version,
type: uni.getSystemInfoSync().platform,
// #ifdef APP-PLUS
platformType: 'APP',
// #endif
// #ifdef H5
platformType: 'H5',
// #endif
// #ifdef MP-WEIXIN
platformType: 'WX',
// #endif
// #ifdef MP-ALIPAY
platformType: 'ALI',
// #endif
token: uni.cache.get('token') || '',
id: userInfo.id ,
shopId: uni.cache.get('shopId') || '',
userId:userInfo.id
}
if (toast) {
uni.showLoading({
title: '加载中',
mask: true
})
}
return new Promise((resolve, reject) => {
const timeoutDuration = params.timeout || 10000; // 可以通过 params 传入超时时间,默认 10 秒
uni.request({
url: uni.conf.baseUrl + url,
method: method,
header: header,
data: data,
timeout: timeoutDuration,
success(response) {
const res = response.data
// 根据返回的状态码做出对应的操作
//获取成功
if (res.code == 200) {
uni.hideLoading();
uni.hideToast();
resolve(res.data ? res.data : true);
} else {
switch (res.code) {
case '501':
uni.cache.remove('shopId')
// uni.showToast({
// title: '',
// icon: "none",
// success: () => {
// }
// })
setTimeout(() => {
uni.reLaunch({
url: "/pages/index/index",
})
}, 1000);
break;
case 404:
uni.showToast({
title: '请求地址不存在...',
duration: 2000,
})
break;
default:
// 是否提示
if (toast) {
uni.showToast({
title: res.message || res.msg || res.error,
icon: "none",
success: () => {
setTimeout(res => {
reject(false);
}, 1000)
}
})
}
break;
}
}
},
fail(err) {
if (err.errMsg.indexOf('request:fail') !== -1) {
if (err.errMsg.indexOf('timeout') !== -1) {
if (toast) {
uni.showToast({
title: `请求超时,请稍后重试`,
icon: "error",
duration: 2000
});
}
}
}
reject(err);
},
complete() {
// 不管成功还是失败都会执行
setTimeout(res => {
uni.hideLoading();
uni.hideToast();
}, 10000)
}
});
}).catch((e) => {
});
};