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.

75 lines
1.5 KiB

import {TOKEN_FIELD} from '@/config/config.js'
// import {refreshToken} from "../../../api";
const service = (params,showToast = true,type='default') => {
return new Promise((resolve, reject) => {
let token=uni.getStorageSync(TOKEN_FIELD)
// let token = uni.getStorageSync('token')
// let now = Math.round(new Date() / 1000);
// if(now > token.token_exp){
// refreshToken();
// }
uni.request({
url: params.url,
data: params.data,
method: params.method,
dataType: "json",
header: {
"content-type": "application/json;charset=utf-8",
"Authorization":"Bearer "+ token.token
}
}).then(res => {
if (res.statusCode === 200) {
let data = res.data;
switch (data.code) {
case 200:
resolve(data);
break;
case 202:
if(showToast){
uni.hideLoading()
uni.$m.error(data.msg).then(() => {
reject(data);
});
}else{
reject(data);
}
break;
case 203:
resolve(data);
break;
case 1001:
uni.setStorageSync('token',data.data)
if(type === 'default'){
console.log('default')
resolve(service(params))
}else{
console.log('refresh')
resolve();
}
break;
case 1002:
if(showToast){
uni.hideLoading()
uni.$m.error(data.msg);
}
reject(data);
break;
default:
reject(data);
break;
}
} else {
uni.$m.error('连接服务器失败')
}
})
})
}
export default service;