You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

240 lines
5.5 KiB
JavaScript

12 months ago
import config from '../config'
9 months ago
// import {useStore} from '@/store/index.js'
// console.log(useStore)
// const store = useStore()
12 months ago
const loginUrl = 'pages/user/login';
11 months ago
// function JSON_to_URLEncoded(element,key,list){
// var list = list || [];
// if(typeof(element)=='object'){
// for (var idx in element)
// JSON_to_URLEncoded(element[idx],key?key+'['+idx+']':idx,list);
// } else {
// list.push(key+'='+encodeURIComponent(element));
// }
// return list.join('&');
// }
12 months ago
export default {
REQUEST(url, method = 'GET', data, checkLogin = true, header) {
11 months ago
let token = uni.getStorageSync('access_token') || 'Basic ZGV2OmRldjEyMw==';
12 months ago
const headers = {
11 months ago
// "Content-Type": "application/json",
11 months ago
// "Content-Type": "application/x-www-form-urlencoded",
12 months ago
"Authorization": token,
"x-token": token,
"token":token,
// "X-Forwarded-For":'client_ip'
// 'Referer':'twzxjy.com'
}
11 months ago
if(!header) {
headers["Content-Type"] = "application/json"
}
if(header && !header["Content-Type"]) {
header["Content-Type"] = "application/x-www-form-urlencoded"
}
12 months ago
var pages = getCurrentPages();
var page = pages[pages.length - 1];
return uni.request({
url: config.baseUrl + url,
method,
header: {
11 months ago
...headers,
...header
12 months ago
},
data
}).then(res => {
// console.log(res)
if (res.statusCode === 200 && res.data) {
if (res.data.code === 409) {
uni.showModal({
title:"提示",
content:"您的账号已在其他设备登录,已强制下线!",
confirmColor: '#006647',
showCancel: false,
success: (res) => {
if (res.confirm) {
uni.removeStorageSync('access_token');
uni.removeStorageSync('user_info');
if (checkLogin && page.route != loginUrl) {
uni.navigateTo({
url: '/' + loginUrl
});
}
}
}
});
return {
...res.data
}
}
if (res.data.code === 5) { // 用户认证失败
uni.removeStorageSync('access_token');
if(page.route != loginUrl && checkLogin) {
uni.navigateTo({
url: '/' + loginUrl
});
}
}
9 months ago
// if(res.data.code === 7) { // 登录失败
// uni.showToast({
// title:res.msg,
// icon:"error",
// duration:2000,
// mask:true,
// success() {
// if(res.code === 7) // 登录失败
// {
// store.afterFailLogin(2000)
// }
// }
// })
// }
12 months ago
return res.data;
} else {
const reg = /abort/;
let code = 0;
let msg = (res[0] && res[0].errMsg) || '未知错误';
if ((res[0] && res[0].errMsg) && reg.test(res[0].errMsg)) {
msg = '网络请求中断'
}
return {
code,
msg,
data: null
}
}
}).catch(parmas => {
// console.log(params)
return parmas
//      return Promise.reject()
})
},
GET(url, body, checkLogin = true, header) {
return this.REQUEST(url, 'GET', body, checkLogin, header);
},
POST(url, body, checkLogin = true, header) {
return this.REQUEST(url, 'POST', body, checkLogin, header);
},
PUT(url, body, header) {
return this.REQUEST(url, 'PUT', body, header);
},
DELETE(url, body, header) {
return this.REQUEST(url, 'DELETE', body, header);
},
UPLOAD(data) {
return new Promise((resolve, reject) => {
let token = uni.getStorageSync('access_token') || '';
uni.uploadFile({
...data,
url: config.base_url + data.url,
header: {
"Access-Token": token
},
success(res) {
res.data = JSON.parse(res.data);
if (res.data.code === 401) {
uni.removeStorageSync('access_token');
uni.removeStorageSync('userInfo');
uni.navigateTo({
url: '/pages/login/login'
});
}
resolve(res);
},
fail(e) {
console.log(e);
reject(e)
},
});
});
},
getShareProvider: () => {
return uni.getProvider({
service: "share"
}).then(res => {
let data = []
for (let i = 0; i < res.provider.length; i++) {
switch (res.provider[i]) {
case 'weixin':
data.push({
name: '微信好友',
id: 'weixin',
icon: '/static/wx.png'
})
data.push({
name: '朋友圈',
id: 'weixin',
type: 'WXSenceTimeline',
icon: '/static/pyq.png'
})
break;
case 'qq':
data.push({
name: 'QQ好友',
id: 'qq',
icon: '/static/qq.png'
})
break;
default:
break;
}
}
return data;
}).catch(parmas => {
return Promise.reject()
});
},
getPaymentProvider: () => {
return uni.getProvider({
service: "payment"
}).then(res => {
let data = [];
const aliPay = {
name: '支付宝支付',
id: 'alipay',
icon: '/static/order/zfbp@3x.png'
};
const wxPay = {
name: '微信支付',
id: 'wxpay',
icon: '/static/order/wxp@3x.png'
};
const yuePay = {
name: '余额支付',
id: 'yepay',
icon: '/static/order/yep@3x.png'
}
for (let i = 0; i < res[1].provider.length; i++) {
switch (res[1].provider[i]) {
case 'alipay':
data.push({
...aliPay
})
break
case 'wxpay':
data.push({
...wxPay
})
break;
default:
break;
}
}
//#ifdef H5
return [aliPay, wxPay, yuePay];
//#endif
return [...data, yuePay];
}).catch(parmas => {
return Promise.reject()
});
}
}