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/user/address/address.vue | 114 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 98 insertions(+), 16 deletions(-) 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; -- Gitblit v1.9.3