import globalData from '@/common/js/globalData.js'; export default { // 异步接口拦截 addInterceptor() { uni.addInterceptor('request', { invoke(args) { // request 触发前拼接 url args.url = 'http://127.0.0.1:80' + args.url; // console.log("停止触发"); // return false; }, // success(args) { // console.log('interceptor-success', args); // }, // fail(err) { // console.log('interceptor-fail', err) // }, // complete(res) { // console.log('interceptor-complete', res) // res = res.data; // } }) }, 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; } // 获取微信登录凭证 const wxLoginCode = wx.login(); // TODO:调用小程序服务端确认是否是授权登录过的用户 let loginRes = { logined: false, userInfo: {} }; // 未登录过的获取微信用户信息 if (!loginRes || !loginRes.logined) { userInfo = await wx.getUserProfile({ desc: '用于小程序登录' }); // 再次请求小程序服务端存储用户,服务端添加附加用户信息后返回 loginRes = { logined: true, userInfo: { userId: 1 } }; } userInfo = loginRes.userInfo; if (!userInfo) { uni.showToast({ icon: 'error', title: '用户信息获取失败,请退出小程序重试' }) return false; } // 页面存储用户登录有效信息,以便其他页面调用 uni.setStorageSync('userProfile', userInfo); return true; }, getCurUserInfo() { let userProfile = uni.getStorageSync('userProfile'); console.log("curUser:" + 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 } }) }, placeOrder(params = {}) { return uni.request({ url: '/goods/goods/list', method: 'POST', data: params }) } }