From 0512f40da106268ac342377256cf9099d7f90b3e Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期五, 18 十月 2024 10:41:35 +0800 Subject: [PATCH] add 首页的定位 --- pages/home/home.vue | 5 + manifest.json | 8 +- sub_pages/customer/shopping/confirm.vue | 6 +- pages/order/order.vue | 6 +- pages/order/order-detail.vue | 6 +- pages/user/address/address.vue | 114 ++++++++++++++++++++++++++++++++----- store/index.js | 6 + 7 files changed, 121 insertions(+), 30 deletions(-) diff --git a/manifest.json b/manifest.json index 7553c85..34ae2ab 100644 --- a/manifest.json +++ b/manifest.json @@ -42,7 +42,9 @@ }, "ios" : {}, /* ios打包配置 */ - "sdkConfigs" : {} + "sdkConfigs" : { + "geolocation" : {} + } } }, /* SDK配置 */ @@ -61,9 +63,9 @@ "desc" : "获取店铺位置与实现蓝牙打印功能" } }, - "requiredPrivateInfos" : [ "chooseLocation" ], + "requiredPrivateInfos" : [ "chooseLocation", "getLocation" ], "plugins" : {}, - "lazyCodeLoading": "requiredComponents" + "lazyCodeLoading" : "requiredComponents" }, // "chooseLocation" : { // "version" : "1.0.10", diff --git a/pages/home/home.vue b/pages/home/home.vue index c3cfb6d..0ce708d 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -15,7 +15,7 @@ <view class="picker flex" @click.stop="goToAddress"> <uni-icons type="location" class="m-r-5" size="18"></uni-icons> <view> - {{ address&&address.id?address.address: '选择地址' }} + {{ addressDesc || (address&&address.id?address.address: '选择地址') }} </view> </view> </view> @@ -141,6 +141,9 @@ ...mapState({ address: state => { return state.defaultaddress || {} + }, + addressDesc: state=>{ + return state.addressDesc || '' }, currentInfo: state => { return state.currentInfo || {} diff --git a/pages/order/order-detail.vue b/pages/order/order-detail.vue index 53b8a64..43f9a37 100644 --- a/pages/order/order-detail.vue +++ b/pages/order/order-detail.vue @@ -21,7 +21,7 @@ async onShow() { // 支付回调 - // #ifdef PUB_CUSTOMER_DEV + // #ifdef PUB_CUSTOMER let options = wx.getEnterOptionsSync(); if (options.scene == '1038' && options.referrerInfo.appId == 'wxef277996acc166c3') { // 代表从收银台小程序返回 @@ -356,7 +356,7 @@ if (code === 0) { //微信接口 let that = this - // #ifndef PUB_CUSTOMER_DEV + // #ifndef PUB_CUSTOMER wx.requestPayment({ ...data, @@ -371,7 +371,7 @@ } }) // #endif - // #ifdef PUB_CUSTOMER_DEV + // #ifdef PUB_CUSTOMER var param = { // cusid: "平台分配的商户号", // appid: "平台分配的appid", diff --git a/pages/order/order.vue b/pages/order/order.vue index b9921fa..4847452 100644 --- a/pages/order/order.vue +++ b/pages/order/order.vue @@ -94,7 +94,7 @@ }, async onShow() { // 支付回调 - // #ifdef PUB_CUSTOMER_DEV + // #ifdef PUB_CUSTOMER let options = wx.getEnterOptionsSync(); if (options.scene == '1038' && options.referrerInfo.appId == 'wxef277996acc166c3') { // 代表从收银台小程序返回 @@ -337,7 +337,7 @@ if (code === 0) { //微信接口 let that = this - // #ifndef PUB_CUSTOMER_DEV + // #ifndef PUB_CUSTOMER wx.requestPayment({ ...data, async success(res) { @@ -354,7 +354,7 @@ } }) // #endif - // #ifdef PUB_CUSTOMER_DEV + // #ifdef PUB_CUSTOMER var param = { // cusid: "平台分配的商户号", // appid: "平台分配的appid", diff --git a/pages/user/address/address.vue b/pages/user/address/address.vue index 7a67134..6be831d 100644 --- a/pages/user/address/address.vue +++ b/pages/user/address/address.vue @@ -1,8 +1,8 @@ <template> <!-- 收货地址列表 --> <view class="p15 container-address"> - <!-- <view class="search-container m-t-12 flex"> - <view class="flex1 input"> + <view class="search-container m-t-12 flex"> + <view class="flex1 input" @click="selectWxAddress('input')"> <u-input placeholder="小区名/店铺名/写字楼/街道名等" disabled v-model="search_flow"> <template slot="suffix"> <uni-icons color="#20613D" type="search" size="24"></uni-icons> @@ -12,19 +12,29 @@ </view> <view class="m-t-12 "> <view class="desc-gray">当前位置</view> - <view class="flex"> - <view class="flex1"></view> - <view @click="selectWxAddress('input')"> - <image src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/a2/a248385d4fe748ca81ee058ea5bf8c47icon-address.jpg"></image> - 重新定位 + <view class="flex current-address"> + <view class="flex1"> + {{ addressDesc || (address&&address.id?address.address: '选择地址') }} + + </view> + <view class="flex" @click="changeCurrentAddress"> + <view> + <image style="width: 30rpx;height: 30rpx;" class="m-t-2" + src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/a2/a248385d4fe748ca81ee058ea5bf8c47icon-address.jpg"> + </image> + </view> + <view>重新定位</view> </view> </view> </view> - --> + <view class="m-t-12 "> + <view class="desc-gray">我的收获地址</view> + + </view> <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> <!-- 循环 --> - <view v-for="(item,index) of list" :key="index" class="location-each"> + <view v-for="(item,index) of list" :key="index" class="location-each m-t-12"> <view class="flex"> <view class="container-info"> <view class="flex"> @@ -73,8 +83,8 @@ <view style="height: 92rpx;width: 690rpx;"> </view> - <view class="button-green button-fixed-bottom" style="width: 690rpx;line-height: 92rpx;height: 92rpx;" - @click="addAddress">添加收货地址 + <view class="button-green button-fixed-bottom" v-if="currentInfo.id" + style="width: 690rpx;line-height: 92rpx;height: 92rpx;" @click="addAddress">添加收货地址 </view> <uni-popup ref="popup_form" type="top" :mask-click="false"> @@ -174,7 +184,12 @@ // this.list = [{}, {}] this.source = options.source || '' this.listApi = '/api/address/list' - await this.getList() + if (!this.currentInfo.id) { + + } else { + await this.getList() + + } }, onShow() { @@ -211,6 +226,12 @@ address: state => { return state.defaultaddress || {} }, + addressDesc: state => { + return state.addressDesc || '' + }, + // search_flow() { + // return this.addressDesc || '' + // } }), }, @@ -230,13 +251,14 @@ }, regionDataPlus: [], list: [], + search_flow: '', }; }, methods: { selectWxAddress(source) { let that = this - if (source === 'form') { + { //表单选择了地址 wx.chooseLocation({ success: location => { @@ -246,9 +268,17 @@ // latitude: 31.26249 // longitude: 120.63212 // name: "苏州市吴中区人民政府" - that.submitForm.address = (location.address || '') + (location.name || '') - that.submitForm.latitude = location.latitude || 0 - that.submitForm.longitude = location.longitude || 0 + if (source === 'form') { + // (location.address || '') + + that.submitForm.address = (location.name || '') + that.submitForm.latitude = location.latitude || 0 + that.submitForm.longitude = location.longitude || 0 + } else if (source === 'input') { + // (location.address || '') + + // that.search_flow = (location.name || '') + that.$store.commit('setAddressDesc', (location.name || '')) + } + // if (!that.submitForm.province && location.provinceName) { // that.submitForm.province = location.provinceName // if (!that.submitForm.city && location.cityName) { @@ -319,6 +349,50 @@ this.submitForm['region'] = '' this.submitForm['isDefault'] = false this.openAddressForm() + }, + changeCurrentAddress() { + // if(!this.addressDesc){ + + // } + let that = this + this.$message.showLoading() + uni.getLocation({ + type: 'gcj02', + geocode: true, + success: async (res) => { + // this.location = { + // latitude: res.latitude, + // longitude: res.longitude, + // speed: res.speed, + // accuracy: res.accuracy, + // address: res.address, + // }; + const { + code,data + } = that.$http.request('get', '/api/pub/customer/home/address/parse', { + data: {}, + params: { + // https://apis.map.qq.com/ws/geocoder/v1/?location=39.984154,116.307490&key=[你的key]&get_poi=1 + location:`${res.latitude},${res.longitude}` + } + }) + console.log('定位成功:', data); + if(data){ + var address = data.address || '' + + that.$store.commit('setAddressDesc', (address || '')) + } + + + }, + fail: (err) => { + this.error = err; + console.error('定位失败:', err); + }, + complete() { + this.$message.hideLoading() + } + }); }, PickArea(item, e) { console.log('PickArea', item, e) @@ -577,6 +651,14 @@ <style lang="scss" scoped> .container-address { + .current-address { + padding: 20rpx; + background-color: #FFFFFF; + border-radius: 16rpx; + margin-top: 16rpx; + margin-bottom: 20rpx; + } + .popup-address-form { background: #FFFFFF; border-radius: 16rpx; diff --git a/store/index.js b/store/index.js index db2ae33..766cdbf 100644 --- a/store/index.js +++ b/store/index.js @@ -39,7 +39,8 @@ coupon: {}, goods:[], }, - defaultaddress: {} + defaultaddress: {}, + addressDesc:'', }, mutations: { @@ -69,6 +70,9 @@ setDefaultAddress(state, defaultaddress) { state.defaultaddress = defaultaddress }, + setAddressDesc(state, addressDesc) { + state.addressDesc = addressDesc + }, setTestTrue(state) { state.testvuex = true }, diff --git a/sub_pages/customer/shopping/confirm.vue b/sub_pages/customer/shopping/confirm.vue index 570129d..8553dc6 100644 --- a/sub_pages/customer/shopping/confirm.vue +++ b/sub_pages/customer/shopping/confirm.vue @@ -68,7 +68,7 @@ }, async onShow() { // 支付回调 - // #ifdef PUB_CUSTOMER_DEV + // #ifdef PUB_CUSTOMER if (this.sign['cache_topay']) { let options = wx.getEnterOptionsSync(); if (options.scene == '1038' && options.referrerInfo.appId == 'wxef277996acc166c3') { @@ -337,7 +337,7 @@ await tmp.$store.dispatch('sign_add', 'shopping') uni.navigateBack() } else if (data) { - // #ifndef PUB_CUSTOMER_DEV + // #ifndef PUB_CUSTOMER wx.requestPayment({ ...data, async success(res) { @@ -368,7 +368,7 @@ // #endif // openEmbeddedMiniProgram,需要小程序基础库版本不低于 2.26.2 - // #ifdef PUB_CUSTOMER_DEV + // #ifdef PUB_CUSTOMER var param = { // cusid: "平台分配的商户号", // appid: "平台分配的appid", -- Gitblit v1.9.3