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;">
 			&nbsp;
 		</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