diff --git a/common/js/request.js b/common/js/request.js index 955de79..3ba8888 100644 --- a/common/js/request.js +++ b/common/js/request.js @@ -65,56 +65,80 @@ export default { }) }, 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); + // 从缓存中获取登录信息 + let userInfo = uni.getStorageSync('userProfile'); + if (userInfo) { + return true; + } + + userInfo = await wx.getUserProfile({ + desc: '用于小程序登录' + }); + console.log("从微信获取基本用户信息:" + userInfo); + // 获取微信登录凭证 + const wxLoginRes = await wx.login(); + console.log(wxLoginRes) + // 获取openid + const wxAuthRes = await uni.request({ + url: '/wx/auth', + header: { + code: wxLoginRes.code + } + }) + console.log(wxAuthRes) + const openId = wxAuthRes[1].data.data.openid; + // 第一次从服务端获取用户信息 + let wxGetUserRes = await this.qryUserInfo(openId); + // 获取失败则获取微信信息再调用注册接口 + if (!wxGetUserRes.data) { + // 注册完成后再次从服务端获取用户信息 + let registerRes = await this.registerUser({ + openId: openId, + name: userInfo.userInfo.nickName, + customerLogoUrl: userInfo.userInfo.avatarUrl, + status: 0 + }); + if (registerRes.code === 0) { + wxGetUserRes = await this.qryUserInfo(openId); + } + } + if (!wxGetUserRes.data) { + userInfo = null; + } else { + userInfo = { + ...wxGetUserRes.data, + wxLoginCode: wxLoginRes.code + } + } + console.log("通过后台服务获取用户信息:" + userInfo); + if (!userInfo || userInfo.customerId == null || userInfo.customerId == undefined) { + uni.showToast({ + icon: 'error', + title: '微信用户信息获取失败,请退出小程序重试' + }) + return false; + } + // 页面存储用户登录有效信息,以便其他页面调用 + uni.setStorageSync('userProfile', userInfo); return true; + }, + async registerUser(params = {}) { + let res = await uni.request({ + url: '/wx/addUser', + method: 'POST', + data: params + }) + return res[1].data; + }, + async qryUserInfo(openId) { + let res = await uni.request({ + url: '/wx/getUserInfo', + method: 'POST', + data: { + openId: openId + } + }) + return res[1].data; }, getCurUserInfo() { let userProfile = uni.getStorageSync('userProfile'); diff --git a/components/uni-combox/my-uni-combox.vue b/components/uni-combox/my-uni-combox.vue index 7c4afe8..269bf45 100644 --- a/components/uni-combox/my-uni-combox.vue +++ b/components/uni-combox/my-uni-combox.vue @@ -4,7 +4,7 @@ {{label}} - diff --git a/pages.json b/pages.json index fc04042..48a96a3 100644 --- a/pages.json +++ b/pages.json @@ -1,43 +1,44 @@ { "pages": [{ - // "path": "pages/index/index" - "path": "pages/my/master-occupancy" - }], - "subPackages": [{ - "root": "pages/area-proxy/", - "pages": [{ - "path": "my-team" - }] + "path": "pages/index/index" + }], + "subPackages": [{ + "root": "pages/area-proxy/", + "pages": [{ + "path": "my-team" + }] + }, { + "root": "pages/demand-center/", + "pages": [{ + "path": "rule" + }, { + "path": "accept-demand-center" + }, { + "path": "demand-detail" + }] + }, { + "root": "pages/order-manage/", + "pages": [{ + "path": "order-manage" + }, { + "path": "serv-detail" + }, { + "path": "finish-order" + }] }, { - "root": "pages/demand-center/", + "root": "pages/my/", "pages": [{ - "path": "rule" + "path": "new-serv" }, { - "path": "accept-demand-center" + "path": "goods-manage" }, { - "path": "demand-detail" + "path": "master-occupancy" + }, { + "path": "withdraw" + }, { + "path": "bank-account-bind" }] - }, { - "root": "pages/order-manage/", - "pages": [{ - "path": "order-manage" - }, { - "path":"serv-detail" - }, { - "path": "finish-order" - }] - } - // { - // "root": "pages/my/", - // "pages": [{ - // "path": "new-serv" - // }, { - // "path": "goods-manage" - // }, { - // "path": "master-occupancy" - // }] - // } - ], + }], "globalStyle": { "navigationStyle": "custom", "navigationBarTextStyle": "black" diff --git a/pages/index/index-home.vue b/pages/index/index-home.vue index d5f2e7b..3874137 100644 --- a/pages/index/index-home.vue +++ b/pages/index/index-home.vue @@ -1,13 +1,13 @@