207 lines
4.6 KiB
JavaScript
207 lines
4.6 KiB
JavaScript
import globalData from '@/common/js/globalData.js';
|
||
|
||
export default {
|
||
// 异步接口拦截
|
||
addInterceptor() {
|
||
uni.addInterceptor('request', {
|
||
invoke(args) {
|
||
// request 触发前拼接 url
|
||
// args.url = 'https://www.opsoul.com' + args.url;
|
||
// args.url = 'http://192.168.2.3:80' + args.url;
|
||
args.url = 'http://127.0.0.1:80' + args.url;
|
||
// console.log("停止触发");
|
||
// return false;
|
||
},
|
||
success(res) {
|
||
if (res.data.code !== 0) {
|
||
uni.showToast({
|
||
title: '系统开小差啦T_T,请稍后重试',
|
||
icon: 'error'
|
||
})
|
||
}
|
||
},
|
||
fail(err) {
|
||
uni.showToast({
|
||
title: '系统开小差啦T_T,请稍后重试',
|
||
icon: 'error'
|
||
})
|
||
},
|
||
complete(res) {
|
||
console.log('interceptor-complete', res)
|
||
}
|
||
})
|
||
},
|
||
checkAndAuth() {
|
||
let _this = this;
|
||
// 通过 wx.getSetting 先查询一下用户是否授权了 "scope.userInfo" 这个 scope
|
||
wx.getSetting({
|
||
success(res) {
|
||
if (!res.authSetting['scope.userInfo']) {
|
||
// 用户授权
|
||
wx.authorize({
|
||
scope: 'scope.userInfo',
|
||
success() {
|
||
// 用户已经同意, 后续调用此接口不会弹窗询问
|
||
_this.login();
|
||
},
|
||
fail() {
|
||
// 用户已经拒绝过授权
|
||
wx.openSetting({
|
||
success(res) {
|
||
if (res['scope.userInfo']) {
|
||
_this.checkAndAuth();
|
||
}
|
||
}
|
||
})
|
||
}
|
||
})
|
||
} else {
|
||
_this.login();
|
||
}
|
||
}
|
||
})
|
||
},
|
||
async login() {
|
||
// 从缓存中获取登录信息
|
||
let userInfo = uni.getStorageSync('userProfile');
|
||
if (userInfo) {
|
||
return true;
|
||
}
|
||
|
||
// TODO:调用小程序服务端确认是否是授权登录过的用户
|
||
let loginRes = {
|
||
logined: false,
|
||
userInfo: {}
|
||
};
|
||
// 未登录过的获取微信用户信息
|
||
if (!loginRes.logined) {
|
||
userInfo = await wx.getUserProfile({
|
||
desc: '用于小程序登录'
|
||
});
|
||
// 获取微信登录凭证
|
||
const wxLoginRes = await wx.login();
|
||
console.log(wxLoginRes)
|
||
// 再次请求小程序服务端存储用户,服务端添加附加用户信息后返回
|
||
loginRes = {
|
||
logined: true,
|
||
userInfo: {
|
||
...userInfo,
|
||
userId: 1,
|
||
wxLoginCode: wxLoginRes.code
|
||
}
|
||
};
|
||
|
||
const wxAuthRes = await uni.request({
|
||
url: '/wx/auth',
|
||
header: {
|
||
code: wxLoginRes.code
|
||
}
|
||
})
|
||
console.log(wxAuthRes)
|
||
loginRes.userInfo.openId = wxAuthRes[1].data.data.openid;
|
||
loginRes.userInfo.customerId = 2;
|
||
}
|
||
userInfo = loginRes.userInfo;
|
||
|
||
if (!userInfo) {
|
||
uni.showToast({
|
||
icon: 'error',
|
||
title: '微信用户信息获取失败,请退出小程序重试'
|
||
})
|
||
return false;
|
||
}
|
||
// 页面存储用户登录有效信息,以便其他页面调用
|
||
uni.setStorageSync('userProfile', userInfo);
|
||
return true;
|
||
},
|
||
wxLogin() {
|
||
return wx.login();
|
||
},
|
||
getCurUserInfo() {
|
||
let userProfile = uni.getStorageSync('userProfile');
|
||
return userProfile;
|
||
},
|
||
getProductCategories(params = {}) {
|
||
return uni.request({
|
||
url: '/goods/deptcategory/app/list',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
},
|
||
qryProductPage(params = {}) {
|
||
return uni.request({
|
||
url: '/goods/goods/list',
|
||
method: 'POST',
|
||
data: params,
|
||
header: {
|
||
pageNum: params.pageNum,
|
||
pageSize: params.pageSize
|
||
}
|
||
})
|
||
},
|
||
async placeOrder(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/server/app',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getWxPayParams(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/pay/wx/lite',
|
||
method: 'POST',
|
||
header: {
|
||
code: params.code,
|
||
orderMasterCode: params.orderMasterCode
|
||
}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getAddressList(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/customer/address/list',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async addAddressList(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/customer/address/insert',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async editAddressList(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/customer/address/update',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async delAddressList(customerAddressId) {
|
||
let res = await uni.request({
|
||
url: '/customer/address/delete',
|
||
method: 'POST',
|
||
data: {
|
||
customerAddressId: customerAddressId
|
||
},
|
||
header: {
|
||
'content-type': 'application/x-www-form-urlencoded'
|
||
}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async areaListByStep(params = { parentCode: null }) {
|
||
let res = await uni.request({
|
||
url: '/system/area/list',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
}
|
||
}
|