dingdong-master/common/js/request.js

153 lines
3.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import globalData from '@/common/js/globalData.js';
export default {
address: 'https://www.opsoul.com',
// 异步接口拦截
addInterceptor() {
uni.addInterceptor('request', {
invoke(args) {
// request 触发前拼接 url
// args.url = 'https://www.opsoul.com' + args.url;
args.url = 'http://127.0.0.1:80' + args.url;
if (args.data) {
args.data.deptId = globalData.deptId;
}
// 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;
}
userInfo = loginRes.userInfo;
if (!userInfo) {
uni.showToast({
icon: 'error',
title: '微信用户信息获取失败,请退出小程序重试'
})
return false;
}
// 页面存储用户登录有效信息,以便其他页面调用
uni.setStorageSync('userProfile', userInfo);
return true;
},
getCurUserInfo() {
let userProfile = uni.getStorageSync('userProfile');
return userProfile;
},
async uploadFile(filePath) {
let res = await uni.uploadFile({
url: this.address + '/tool/qiniu/upload',
filePath: filePath,
name: 'uploadFile'
})
let resStr = res[1].data;
let resObj = {};
if (resStr != null && resStr.length > 0) {
resObj = JSON.parse(resStr);
}
return resObj;
},
async listByStep(params = {goodsCategoryId : null}) {
let res = await uni.request({
url: '/goods/deptcategory/listByStep',
method: 'POST',
data: params
})
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;
}
}