diff --git a/common/js/request.js b/common/js/request.js index 2724e76..eeca8aa 100644 --- a/common/js/request.js +++ b/common/js/request.js @@ -4,214 +4,227 @@ export default { // 异步接口拦截 addInterceptor() { uni.addInterceptor('request', { - invoke(args) { - uni.showLoading({ - mask: true, - title: '加载中' + invoke(args) { + uni.showLoading({ + mask: true, + title: '加载中' }) // request 触发前拼接 url - args.url = 'https://www.opsoul.com' + args.url; - // args.url = 'http://192.168.2.42:80' + args.url; - // args.url = 'http://127.0.0.1:80' + args.url; - if (args.data) { - args.data.deptId = globalData.deptId; - args.data.from = globalData.from; - } - if (args.header) { - args.header.deptId = globalData.deptId; - args.header.from = globalData.from; + // args.url = 'https://www.opsoul.com' + args.url; + // args.url = 'http://192.168.2.42:80' + args.url; + args.url = 'http://127.0.0.1:80' + args.url; + if (args.data) { + args.data.deptId = globalData.deptId; + args.data.from = globalData.from; + } + if (args.header) { + args.header.deptId = globalData.deptId; + args.header.from = globalData.from; } // console.log("停止触发"); // return false; }, success(res) { - if (res.data.code !== 0) { - uni.showToast({ - title: '系统开小差啦T_T,请稍后重试', - icon: 'error' - }) + if (res.data.code !== 0) { + uni.showToast({ + title: '系统开小差啦T_T,请稍后重试', + icon: 'error' + }) } }, fail(err) { uni.showToast({ - title: '系统开小差啦T_T,请稍后重试', + title: '系统开小差啦T_T,请稍后重试', icon: 'error' }) }, - complete(res) { + complete(res) { uni.hideLoading(); } }) }, - checkAndAuth() { + authAndGetLocation() { let _this = this; - // 通过 wx.getSetting 先查询一下用户是否授权了 "scope.userInfo" 这个 scope + // 通过 wx.getSetting 先查询一下用户是否授权了 "scope.userLocation" 这个 scope wx.getSetting({ success(res) { - if (!res.authSetting['scope.userInfo']) { + if (!res.authSetting['scope.userLocation']) { // 用户授权 wx.authorize({ - scope: 'scope.userInfo', + scope: 'scope.userLocation', success() { // 用户已经同意, 后续调用此接口不会弹窗询问 - _this.login(); + _this.wxGetLocation(); }, fail() { // 用户已经拒绝过授权 wx.openSetting({ success(res) { - if (res['scope.userInfo']) { - _this.checkAndAuth(); + if (res['scope.userLocation']) { + _this.wxGetLocation(); } } }) } }) } else { - _this.login(); + _this.wxGetLocation(); } } }) }, - async login() { - let userInfo = await wx.getUserProfile({ - desc: '用于小程序登录' - }); - // 获取微信登录凭证 - const wxLoginRes = await wx.login(); - // 获取openid - const wxAuthRes = await uni.request({ - url: '/wx/auth', - header: { - code: wxLoginRes.code - } - }) - 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 - } - } - if (!userInfo || userInfo.customerId == null || userInfo.customerId == undefined) { - uni.showToast({ - icon: 'none', - title: '微信用户信息获取失败,请退出小程序重试' - }) - return false; - } - // 页面存储用户登录有效信息,以便其他页面调用 - uni.setStorageSync('userProfile', userInfo); + wxGetLocation() { + wx.getLocation({ + type: 'gcj02', + success(res) { + const latitude = res.latitude + const longitude = res.longitude + console.log(res) + // uni.setStorageSync('userLocation', res); + }, + complete(res) { + console.log(res) + } + }) + }, + async login() { + let userInfo = await wx.getUserProfile({ + desc: '用于小程序登录' + }); + // 获取微信登录凭证 + const wxLoginRes = await wx.login(); + // 获取openid + const wxAuthRes = await uni.request({ + url: '/wx/auth', + header: { + code: wxLoginRes.code + } + }) + 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 + } + } + if (!userInfo || userInfo.customerId == null || userInfo.customerId == undefined) { + uni.showToast({ + icon: 'none', + title: '微信用户信息获取失败,请退出小程序重试' + }) + return false; + } + // 页面存储用户登录有效信息,以便其他页面调用 + uni.setStorageSync('userProfile', userInfo); return true; - }, - async storageExistUser() { - uni.clearStorageSync('userProfile'); - // 获取微信登录凭证 - const wxLoginRes = await wx.login(); - // 获取openid - const wxAuthRes = await uni.request({ - url: '/wx/auth', - header: { - code: wxLoginRes.code - } - }) - const openId = wxAuthRes[1].data.data.openid; - // 从服务端获取用户信息 - let wxGetUserRes = await this.qryUserInfo(openId); - let userInfo = null; - if (wxGetUserRes.data) { - userInfo = { - ...wxGetUserRes.data, - wxLoginCode: wxLoginRes.code - } - } - uni.setStorageSync('userProfile', userInfo); - }, - 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; - }, - async qryUserPhone(code) { - let res = await uni.request({ - url: '/wx/auth/phone', - method: 'GET', - header: { - code: code - } - }) - return res[1].data; - }, - async updateUser(params = {}) { - let res = await uni.request({ - url: '/customer/update', - method: 'POST', - data: params - }) - // 更新用户信息的方法顺便更新本地缓存 - if (res[1].data.code === 0) { - let userInfo = this.getCurUserInfo(); - let wxGetUserRes = await this.qryUserInfo(userInfo.openId); - let newUserInfo; - if (wxGetUserRes.data) { - newUserInfo = { - ...wxGetUserRes.data, - wxLoginCode: userInfo.wxLoginCode - } - } - console.log(newUserInfo) - uni.setStorageSync('userProfile', newUserInfo); - } - return res[1].data; - }, - async storagePhoneIntoUserInfo(code) { - let phoneRes = await this.qryUserPhone(code); - if (phoneRes && phoneRes.msg === '获取手机号码异常') { - uni.showToast({ - icon: 'none', - title: '请先确认登录微信号是否已绑定手机号' - }) - return false; - } - if (phoneRes && phoneRes.data) { - let userInfo = this.getCurUserInfo(); - await this.updateUser({ - customerId: userInfo.customerId, - account: phoneRes.data, - phone: phoneRes.data - }) - return true; - } + }, + async storageExistUser() { + uni.clearStorageSync('userProfile'); + // 获取微信登录凭证 + const wxLoginRes = await wx.login(); + // 获取openid + const wxAuthRes = await uni.request({ + url: '/wx/auth', + header: { + code: wxLoginRes.code + } + }) + const openId = wxAuthRes[1].data.data.openid; + // 从服务端获取用户信息 + let wxGetUserRes = await this.qryUserInfo(openId); + let userInfo = null; + if (wxGetUserRes.data) { + userInfo = { + ...wxGetUserRes.data, + wxLoginCode: wxLoginRes.code + } + } + uni.setStorageSync('userProfile', userInfo); + }, + 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; + }, + async qryUserPhone(code) { + let res = await uni.request({ + url: '/wx/auth/phone', + method: 'GET', + header: { + code: code + } + }) + return res[1].data; + }, + async updateUser(params = {}) { + let res = await uni.request({ + url: '/customer/update', + method: 'POST', + data: params + }) + // 更新用户信息的方法顺便更新本地缓存 + if (res[1].data.code === 0) { + let userInfo = this.getCurUserInfo(); + let wxGetUserRes = await this.qryUserInfo(userInfo.openId); + let newUserInfo; + if (wxGetUserRes.data) { + newUserInfo = { + ...wxGetUserRes.data, + wxLoginCode: userInfo.wxLoginCode + } + } + uni.setStorageSync('userProfile', newUserInfo); + } + return res[1].data; + }, + async storagePhoneIntoUserInfo(code) { + let phoneRes = await this.qryUserPhone(code); + if (phoneRes && phoneRes.msg === '获取手机号码异常') { + uni.showToast({ + icon: 'none', + title: '请先确认登录微信号是否已绑定手机号' + }) + return false; + } + if (phoneRes && phoneRes.data) { + let userInfo = this.getCurUserInfo(); + await this.updateUser({ + customerId: userInfo.customerId, + account: phoneRes.data, + phone: phoneRes.data + }) + return true; + } }, wxLogin() { return wx.login(); @@ -219,19 +232,19 @@ export default { getCurUserInfo() { let userProfile = uni.getStorageSync('userProfile'); return userProfile; - }, - async getCurUserNoCache() { - let userInfo = this.getCurUserInfo(); - let wxGetUserRes = await this.qryUserInfo(userInfo.openId); - if (!wxGetUserRes.data) { - userInfo = null; - } else { - userInfo = { - ...wxGetUserRes.data, - wxLoginCode: userInfo.wxLoginCode - } - } - return userInfo; + }, + async getCurUserNoCache() { + let userInfo = this.getCurUserInfo(); + let wxGetUserRes = await this.qryUserInfo(userInfo.openId); + if (!wxGetUserRes.data) { + userInfo = null; + } else { + userInfo = { + ...wxGetUserRes.data, + wxLoginCode: userInfo.wxLoginCode + } + } + return userInfo; }, getProductCategories(params = {}) { return uni.request({ @@ -256,200 +269,204 @@ export default { 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 - } - }) + 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/app/list', + method: 'POST', + data: params + }) + return res[1].data; + }, + async listByStep(params = { + goodsCategoryId: null + }) { + let res = await uni.request({ + url: '/goods/deptcategory/listByStep', + method: 'POST', + data: params + }) + return res[1].data; + }, + 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 qryOrderGoodsPage(params = {}) { + // let res = await uni.request({ + // url: '/order/goods/list', + // method: 'POST', + // data: params, + // header: { + // pageNum: params.pageNum, + // pageSize: params.pageSize + // } + // }) + // return res[1].data; + // }, + async bindBankCard(params) { + let res = await uni.request({ + url: '/customer/bankcard/bind', + method: 'POST', + data: params + }) + return res[1].data; + }, + async getBindBankCardByCustomerId(params) { + let res = await uni.request({ + url: '/customer/bankcard/getByCustomerId', + method: 'POST', + data: params + }) + return res[1].data; + }, + async getGoodsDetail(params) { + let res = await uni.request({ + url: '/goods/goods/getDetail', + method: 'POST', + data: params + }) + return res[1].data.data; + }, + async qryFinancialCount(params = {}) { + let res = await uni.request({ + url: '/financial/detail/count', + method: 'POST', + data: params + }) + return res[1].data; + }, + async qryFinancialDetail(params = {}) { + let res = await uni.request({ + url: '/financial/detail/app/list', + method: 'POST', + data: params + }) + return res[1].data; + }, + async qryOrderPage(params = {}) { + let res = await uni.request({ + url: '/order/master/app/list', + method: 'POST', + data: params, + header: { + pageNum: params.pageNum, + pageSize: params.pageSize + } + }) + return res[1].data; + }, + async updateOrder(params = {}) { + let res = await uni.request({ + url: '/order/master/editOrderMaster', + method: 'POST', + data: params + }) + return res[1].data; + }, + async getHotGoods(params = {}) { + let res = await uni.request({ + url: '/goods/goods/hot/list', + method: 'POST', + data: params, + header: { + pageNum: params.pageNum, + pageSize: params.pageSize + } + }) + return res[1].data; + }, + async getOrderMasterDetail(params = {}) { + let res = await uni.request({ + url: '/order/master/app/detail', + method: 'POST', + data: params + }) + return res[1].data; + }, + async getWorkerList(params = {}) { + let res = await uni.request({ + url: '/worker/app/list', + method: 'POST', + data: params + }) + return res[1].data; + }, + async getWorkerAllDetailById(params = {}) { + let res = await uni.request({ + url: '/worker/getDetailById', + method: 'POST', + data: params + }) + return res[1].data; + }, + async getUnlimitedWxacode(params = {}) { + let res = await uni.request({ + url: '/wx/unlimited/wxacode', + method: 'POST', + data: params + }) 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/app/list', - method: 'POST', - data: params - }) - return res[1].data; - }, - async listByStep(params = {goodsCategoryId : null}) { - let res = await uni.request({ - url: '/goods/deptcategory/listByStep', - method: 'POST', - data: params - }) - return res[1].data; - }, - 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 qryOrderGoodsPage(params = {}) { - // let res = await uni.request({ - // url: '/order/goods/list', - // method: 'POST', - // data: params, - // header: { - // pageNum: params.pageNum, - // pageSize: params.pageSize - // } - // }) - // return res[1].data; - // }, - async bindBankCard(params) { - let res = await uni.request({ - url: '/customer/bankcard/bind', - method: 'POST', - data: params - }) - return res[1].data; - }, - async getBindBankCardByCustomerId(params) { - let res = await uni.request({ - url: '/customer/bankcard/getByCustomerId', - method: 'POST', - data: params - }) - return res[1].data; - }, - async getGoodsDetail(params) { - let res = await uni.request({ - url: '/goods/goods/getDetail', - method: 'POST', - data: params - }) - return res[1].data.data; - }, - async qryFinancialCount(params = {}) { - let res = await uni.request({ - url: '/financial/detail/count', - method: 'POST', - data: params - }) - return res[1].data; - }, - async qryFinancialDetail(params = {}) { - let res = await uni.request({ - url: '/financial/detail/app/list', - method: 'POST', - data: params - }) - return res[1].data; - }, - async qryOrderPage(params = {}) { - let res = await uni.request({ - url: '/order/master/app/list', - method: 'POST', - data: params, - header: { - pageNum: params.pageNum, - pageSize: params.pageSize - } - }) - return res[1].data; - }, - async updateOrder(params = {}) { - let res = await uni.request({ - url: '/order/master/editOrderMaster', - method: 'POST', - data: params - }) - return res[1].data; - }, - async getHotGoods(params = {}) { - let res = await uni.request({ - url: '/goods/goods/hot/list', - method: 'POST', - data: params, - header: { - pageNum: params.pageNum, - pageSize: params.pageSize - } - }) - return res[1].data; - }, - async getOrderMasterDetail(params = {}) { - let res = await uni.request({ - url: '/order/master/app/detail', - method: 'POST', - data: params - }) - return res[1].data; - }, - async getWorkerList(params = {}) { - let res = await uni.request({ - url: '/worker/app/list', - method: 'POST', - data: params - }) - return res[1].data; - }, - async getWorkerAllDetailById(params = {}) { - let res = await uni.request({ - url: '/worker/getDetailById', - method: 'POST', - data: params - }) - return res[1].data; - }, - async getUnlimitedWxacode(params = {}) { - let res = await uni.request({ - url: '/wx/unlimited/wxacode', - method: 'POST', - data: params - }) - return res[1].data; } } diff --git a/components/uni-combox/my-uni-combox.vue b/components/uni-combox/my-uni-combox.vue new file mode 100644 index 0000000..269bf45 --- /dev/null +++ b/components/uni-combox/my-uni-combox.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/manifest.json b/manifest.json index 686b8b3..b8061ee 100644 --- a/manifest.json +++ b/manifest.json @@ -56,6 +56,10 @@ "es6" : false }, "usingComponents" : true, - "permission" : {} + "permission" : { + "scope.userLocation" : { + "desc" : "因涉及上门家政服务,需获取地理位置" + } + } } } diff --git a/pages.json b/pages.json index 8a65b14..59aaa8a 100644 --- a/pages.json +++ b/pages.json @@ -47,6 +47,10 @@ "path": "serv-detail" }, { "path": "statement-desc" + }, { + "path": "withdraw" + }, { + "path": "b-account-bind" }] }, { "root":"pages/publish/", diff --git a/pages/index/index.vue b/pages/index/index.vue index 3ec8325..eed3b99 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -104,6 +104,9 @@ } this.inParam = option; this.loadData(option); + }, + onShow() { + this.$request.authAndGetLocation(); }, onShareAppMessage(e) { let shareInfo = null; diff --git a/pages/index/my-home.vue b/pages/index/my-home.vue index 88849f3..e887374 100644 --- a/pages/index/my-home.vue +++ b/pages/index/my-home.vue @@ -213,10 +213,10 @@ 二维码分享 - + + - + - + + - + + +