From d39644872fa6f9499fc2c1651bced631a9e96b19 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期一, 23 十二月 2024 09:48:53 +0800
Subject: [PATCH] 1.高德地图未开发完成版本(可能废弃)

---
 environments/index.js                |    6 
 pages.json                           |    6 
 pages/user/address/gaode-address.vue |  359 +++++++++++++
 map/amap-wx.130.js                   |   31 +
 pages/user/address/address.vue       | 1217 ++++++++++++++++++++++----------------------
 5 files changed, 1,011 insertions(+), 608 deletions(-)

diff --git a/environments/index.js b/environments/index.js
index c8a5cf9..814a716 100644
--- a/environments/index.js
+++ b/environments/index.js
@@ -1,10 +1,14 @@
 export default {
 	
-	httpBaseUri: 'https://www.hmyxianhua.com/flower',
+	// httpBaseUri: 'https://www.hmyxianhua.com/flower',
 	// httpBaseUri: 'http://47.99.58.211/flower',
+	// httpBaseUri: 'http://192.168.1.198:8080/flower',
+	// httpBaseUri: 'http://192.168.1.213:8080/flower',
 	// httpBaseUri: 'http://localhost:8080/flower',
+	httpBaseUri: 'http://192.168.1.7:8080/flower',
 	clientId: '',
 	secret: '',
 	tenantId: '',
 	type: 'dev'
 }
+
diff --git a/map/amap-wx.130.js b/map/amap-wx.130.js
new file mode 100644
index 0000000..718d6ef
--- /dev/null
+++ b/map/amap-wx.130.js
@@ -0,0 +1,31 @@
+function AMapWX(a){this.key=a.key;this.requestConfig={key:a.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};this.MeRequestConfig={key:a.key,serviceName:"https://restapi.amap.com/rest/me"}}
+AMapWX.prototype.getWxLocation=function(a,b){wx.getLocation({type:"gcj02",success:function(c){c=c.longitude+","+c.latitude;wx.setStorage({key:"userLocation",data:c});b(c)},fail:function(c){wx.getStorage({key:"userLocation",success:function(d){d.data&&b(d.data)}});a.fail({errCode:"0",errMsg:c.errMsg||""})}})};
+AMapWX.prototype.getMEKeywordsSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.city&&(d.city=b.city);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize);b.sig&&(d.sig=
+b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/local",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
+AMapWX.prototype.getMEIdSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.id&&(d.id=b.id);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/id",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&
+0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
+AMapWX.prototype.getMEPolygonSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.polygon&&(d.polygon=b.polygon);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize);
+b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/polygon",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
+AMapWX.prototype.getMEaroundSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.center&&(d.center=b.center);b.radius&&(d.radius=b.radius);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&
+(d.pageSize=b.pageSize);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/around",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
+AMapWX.prototype.getGeo=function(a){var b=this.requestConfig,c=a.options;b={key:this.key,extensions:"all",s:b.s,platform:b.platform,appname:this.key,sdkversion:b.sdkversion,logversion:b.logversion};c.address&&(b.address=c.address);c.city&&(b.city=c.city);c.batch&&(b.batch=c.batch);c.sig&&(b.sig=c.sig);wx.request({url:"https://restapi.amap.com/v3/geocode/geo",data:b,method:"GET",header:{"content-type":"application/json"},success:function(d){(d=d.data)&&d.status&&"1"===d.status?a.success(d):a.fail({errCode:"0",
+errMsg:d})},fail:function(d){a.fail({errCode:"0",errMsg:d.errMsg||""})}})};
+AMapWX.prototype.getRegeo=function(a){function b(d){var e=c.requestConfig;wx.request({url:"https://restapi.amap.com/v3/geocode/regeo",data:{key:c.key,location:d,extensions:"all",s:e.s,platform:e.platform,appname:c.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(g){if(g.data.status&&"1"==g.data.status){g=g.data.regeocode;var h=g.addressComponent,f=[],k=g.roads[0].name+"\u9644\u8fd1",m=d.split(",")[0],n=d.split(",")[1];if(g.pois&&
+g.pois[0]){k=g.pois[0].name+"\u9644\u8fd1";var l=g.pois[0].location;l&&(m=parseFloat(l.split(",")[0]),n=parseFloat(l.split(",")[1]))}h.provice&&f.push(h.provice);h.city&&f.push(h.city);h.district&&f.push(h.district);h.streetNumber&&h.streetNumber.street&&h.streetNumber.number?(f.push(h.streetNumber.street),f.push(h.streetNumber.number)):f.push(g.roads[0].name);f=f.join("");a.success([{iconPath:a.iconPath,width:a.iconWidth,height:a.iconHeight,name:f,desc:k,longitude:m,latitude:n,id:0,regeocodeData:g}])}else a.fail({errCode:g.data.infocode,
+errMsg:g.data.info})},fail:function(g){a.fail({errCode:"0",errMsg:g.errMsg||""})}})}var c=this;a.location?b(a.location):c.getWxLocation(a,function(d){b(d)})};
+AMapWX.prototype.getWeather=function(a){function b(g){var h="base";a.type&&"forecast"==a.type&&(h="all");wx.request({url:"https://restapi.amap.com/v3/weather/weatherInfo",data:{key:d.key,city:g,extensions:h,s:e.s,platform:e.platform,appname:d.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(f){if(f.data.status&&"1"==f.data.status)if(f.data.lives){if((f=f.data.lives)&&0<f.length){f=f[0];var k={city:{text:"\u57ce\u5e02",data:f.city},
+weather:{text:"\u5929\u6c14",data:f.weather},temperature:{text:"\u6e29\u5ea6",data:f.temperature},winddirection:{text:"\u98ce\u5411",data:f.winddirection+"\u98ce"},windpower:{text:"\u98ce\u529b",data:f.windpower+"\u7ea7"},humidity:{text:"\u6e7f\u5ea6",data:f.humidity+"%"}};k.liveData=f;a.success(k)}}else f.data.forecasts&&f.data.forecasts[0]&&a.success({forecast:f.data.forecasts[0]});else a.fail({errCode:f.data.infocode,errMsg:f.data.info})},fail:function(f){a.fail({errCode:"0",errMsg:f.errMsg||""})}})}
+function c(g){wx.request({url:"https://restapi.amap.com/v3/geocode/regeo",data:{key:d.key,location:g,extensions:"all",s:e.s,platform:e.platform,appname:d.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(h){if(h.data.status&&"1"==h.data.status){h=h.data.regeocode;if(h.addressComponent)var f=h.addressComponent.adcode;else h.aois&&0<h.aois.length&&(f=h.aois[0].adcode);b(f)}else a.fail({errCode:h.data.infocode,errMsg:h.data.info})},
+fail:function(h){a.fail({errCode:"0",errMsg:h.errMsg||""})}})}var d=this,e=d.requestConfig;a.city?b(a.city):d.getWxLocation(a,function(g){c(g)})};
+AMapWX.prototype.getPoiAround=function(a){function b(e){e={key:c.key,location:e,s:d.s,platform:d.platform,appname:c.key,sdkversion:d.sdkversion,logversion:d.logversion};a.querytypes&&(e.types=a.querytypes);a.querykeywords&&(e.keywords=a.querykeywords);wx.request({url:"https://restapi.amap.com/v3/place/around",data:e,method:"GET",header:{"content-type":"application/json"},success:function(g){if(g.data.status&&"1"==g.data.status){if((g=g.data)&&g.pois){for(var h=[],f=0;f<g.pois.length;f++){var k=0==
+f?a.iconPathSelected:a.iconPath;h.push({latitude:parseFloat(g.pois[f].location.split(",")[1]),longitude:parseFloat(g.pois[f].location.split(",")[0]),iconPath:k,width:22,height:32,id:f,name:g.pois[f].name,address:g.pois[f].address})}a.success({markers:h,poisData:g.pois})}}else a.fail({errCode:g.data.infocode,errMsg:g.data.info})},fail:function(g){a.fail({errCode:"0",errMsg:g.errMsg||""})}})}var c=this,d=c.requestConfig;a.location?b(a.location):c.getWxLocation(a,function(e){b(e)})};
+AMapWX.prototype.getStaticmap=function(a){function b(e){c.push("location="+e);a.zoom&&c.push("zoom="+a.zoom);a.size&&c.push("size="+a.size);a.scale&&c.push("scale="+a.scale);a.markers&&c.push("markers="+a.markers);a.labels&&c.push("labels="+a.labels);a.paths&&c.push("paths="+a.paths);a.traffic&&c.push("traffic="+a.traffic);e="https://restapi.amap.com/v3/staticmap?"+c.join("&");a.success({url:e})}var c=[];c.push("key="+this.key);var d=this.requestConfig;c.push("s="+d.s);c.push("platform="+d.platform);
+c.push("appname="+d.appname);c.push("sdkversion="+d.sdkversion);c.push("logversion="+d.logversion);a.location?b(a.location):this.getWxLocation(a,function(e){b(e)})};
+AMapWX.prototype.getInputtips=function(a){var b=Object.assign({},this.requestConfig);a.location&&(b.location=a.location);a.keywords&&(b.keywords=a.keywords);a.type&&(b.type=a.type);a.city&&(b.city=a.city);a.citylimit&&(b.citylimit=a.citylimit);wx.request({url:"https://restapi.amap.com/v3/assistant/inputtips",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.tips&&a.success({tips:c.data.tips})},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||
+""})}})};
+AMapWX.prototype.getDrivingRoute=function(a){var b=Object.assign({},this.requestConfig);a.origin&&(b.origin=a.origin);a.destination&&(b.destination=a.destination);a.strategy&&(b.strategy=a.strategy);a.waypoints&&(b.waypoints=a.waypoints);a.avoidpolygons&&(b.avoidpolygons=a.avoidpolygons);a.avoidroad&&(b.avoidroad=a.avoidroad);wx.request({url:"https://restapi.amap.com/v3/direction/driving",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.route&&a.success({paths:c.data.route.paths,
+taxi_cost:c.data.route.taxi_cost||""})},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||""})}})};
+AMapWX.prototype.getWalkingRoute=function(a){var b=Object.assign({},this.requestConfig);a.origin&&(b.origin=a.origin);a.destination&&(b.destination=a.destination);wx.request({url:"https://restapi.amap.com/v3/direction/walking",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.route&&a.success({paths:c.data.route.paths})},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||""})}})};
+AMapWX.prototype.getTransitRoute=function(a){var b=Object.assign({},this.requestConfig);a.origin&&(b.origin=a.origin);a.destination&&(b.destination=a.destination);a.strategy&&(b.strategy=a.strategy);a.city&&(b.city=a.city);a.cityd&&(b.cityd=a.cityd);wx.request({url:"https://restapi.amap.com/v3/direction/transit/integrated",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.route&&(c=c.data.route,a.success({distance:c.distance||"",taxi_cost:c.taxi_cost||
+"",transits:c.transits}))},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||""})}})};
+AMapWX.prototype.getRidingRoute=function(a){var b=Object.assign({},this.requestConfig);a.origin&&(b.origin=a.origin);a.destination&&(b.destination=a.destination);wx.request({url:"https://restapi.amap.com/v3/direction/riding",data:b,method:"GET",header:{"content-type":"application/json"},success:function(c){c&&c.data&&c.data.route&&a.success({paths:c.data.route.paths})},fail:function(c){a.fail({errCode:"0",errMsg:c.errMsg||""})}})};module.exports.AMapWX=AMapWX;
\ No newline at end of file
diff --git a/pages.json b/pages.json
index e7f18b4..1fc700c 100644
--- a/pages.json
+++ b/pages.json
@@ -19,6 +19,12 @@
 				"navigationBarTitleText": "收货地址"
 			}
 		},
+		{
+			"path": "pages/user/address/gaode-address",
+			"style": {
+				"navigationBarTitleText": "高德地图"
+			}
+		},
 		// #endif
 		{
 			"path": "pages/login/supplier-login",
diff --git a/pages/user/address/address.vue b/pages/user/address/address.vue
index cee367b..956fb97 100644
--- a/pages/user/address/address.vue
+++ b/pages/user/address/address.vue
@@ -2,7 +2,8 @@
 	<!-- 收货地址列表 -->
 	<view class="p15 container-address">
 		<view class="search-container m-t-12 flex">
-			<view class="flex1 input" @click="selectWxAddress('input')">
+			<!-- <view class="flex1 input" @click="selectWxAddress('input')"> -->
+			<view class="flex1 input" @click="selectGaodeAddress('input')">
 				<u-input placeholder="小区名/店铺名/写字楼/街道名等" disabled v-model="search_flow">
 					<template slot="suffix">
 						<uni-icons color="#20613D" type="search" size="24"></uni-icons>
@@ -14,7 +15,7 @@
 			<view class="desc-gray">当前位置</view>
 			<view class="flex current-address">
 				<view class="flex1">
-					{{ addressDesc || (address&&address.id?address.address: '选择地址')  }}
+					{{ addressDesc || (address && address.id ? address.address : '选择地址') }}
 
 				</view>
 				<view class="flex" @click="changeCurrentAddress">
@@ -31,10 +32,10 @@
 			<view class="desc-gray">我的收货地址</view>
 
 		</view>
-		<no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
+		<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 m-t-12">
+		<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">
@@ -43,7 +44,7 @@
 					</view>
 					<view class="address">
 						{{ item['province'] || '' }}{{ item['city'] && ('/' + item['city']) || '' }}{{
-						  item['region'] && ('/' + item['region']) || ''
+							item['region'] && ('/' + item['region']) || ''
 						}}
 					</view>
 					<view class="address">
@@ -51,7 +52,7 @@
 					</view>
 				</view>
 				<!-- <view class="h-line"></view> -->
-				<view class="edit" @click="()=>{
+				<view class="edit" @click="() => {
 					this.submitForm = {
 						...item
 					}
@@ -64,8 +65,8 @@
 			<view class="flex">
 				<!--        -->
 				<view class="flex">
-					<view class="radio m-t-2 m-r-10" :class="[item.isDefault?'select':'']"
-						@click="changeDefaultAddress(item,index)">
+					<view class="radio m-t-2 m-r-10" :class="[item.isDefault ? 'select' : '']"
+						@click="changeDefaultAddress(item, index)">
 
 					</view>
 					<span class="desc" style="word-break: break-all;">{{ item.isDefault ? '默认地址:' : '当前地址:' }}</span>
@@ -74,10 +75,10 @@
 				<view class="desc del t-red" @click="deleteAddress(item)">
 					删除
 				</view>
-				<view class="desc del t-green m-l-10" v-if="source==='select'" @click="selectAddress(item)">
+				<view class="desc del t-green m-l-10" v-if="source === 'select'" @click="selectAddress(item)">
 					选择此地址
 				</view>
-				<view class="desc del t-green m-l-10" v-if="source==='home'" @click="selectAddress(item)">
+				<view class="desc del t-green m-l-10" v-if="source === 'home'" @click="selectAddress(item)">
 					按此地址定位
 				</view>
 			</view>
@@ -119,12 +120,14 @@
 						<view class="form-item-label require">
 							收货地址
 						</view>
-						<view class="m-l-a m-r-0 flex " :class="[!dto['province']?'desc-gray':'']">
-							<uni-data-picker :area="true" @change="(e)=>{PickArea(submitForm,e)}" placeholder=""
+						<view class="m-l-a m-r-0 flex " :class="[!dto['province'] ? 'desc-gray' : '']">
+							<uni-data-picker :area="true" @change="(e) => { PickArea(submitForm, e) }" placeholder=""
 								:localdata="regionDataPlus">
-								{{ submitForm['province'] || '请选择' }}{{ submitForm['city'] && ('/' + submitForm['city']) || '' }}{{
-                  submitForm['region'] && ('/' + submitForm['region']) || ''
-                }}
+								{{ submitForm['province'] || '请选择' }}{{ submitForm['city'] && ('/' + submitForm['city'])
+									|| ''
+								}}{{
+									submitForm['region'] && ('/' + submitForm['region']) || ''
+								}}
 							</uni-data-picker>
 							<u-icon class="m-l-a" name="arrow-right"></u-icon>
 						</view>
@@ -154,7 +157,7 @@
 						</view>
 						<view class="form-item-value">
 							<radio value="r1" :checked="submitForm.isDefault"
-								@click="submitForm.isDefault=!submitForm.isDefault"
+								@click="submitForm.isDefault = !submitForm.isDefault"
 								style="transform:scale(0.6);margin-top: -8rpx;" />
 						</view>
 					</view>
@@ -168,80 +171,443 @@
 </template>
 
 <script>
-	// #ifdef PUB_CUSTOMER
-	// import qqmapwx from '@/plugins/qqmap-wx-jssdk.min.js';
-	// const lockey = 'GSBBZ-CJA3U-NNDVH-GE65N-6FIF6-ZGBCU'; //使用在腾讯位置服务申请的key
-	// const chooseLocation = requirePlugin('chooseLocation');	
-	// #endif
+// #ifdef PUB_CUSTOMER
+// import qqmapwx from '@/plugins/qqmap-wx-jssdk.min.js';
+// const lockey = 'GSBBZ-CJA3U-NNDVH-GE65N-6FIF6-ZGBCU'; //使用在腾讯位置服务申请的key
+// const chooseLocation = requirePlugin('chooseLocation');	
+// #endif
 
-	import {
-		mapState
-	} from 'vuex'
-	export default {
-		async onPullDownRefresh() {
-			this.page.current = 0
+import amapFile from '@/map/amap-wx.130.js';
+
+import {
+	mapState
+} from 'vuex'
+export default {
+	async onPullDownRefresh() {
+		this.page.current = 0
+		await this.getList()
+		uni.stopPullDownRefresh()
+	},
+	async onLoad(options) {
+		// debugger;
+		// 引入高德地图的组件
+		const myAmapFun = new amapFile.AMapWX({ key: '75d7da3feb329cd5ae997975b953abb6' });
+		myAmapFun.getRegeo({
+			success: (data) => {
+				console.log('当前位置:', data[0]);
+				console.log(data)
+				// this.setData({
+				// 	longitude: data[0].longitude,
+				// 	latitude: data[0].latitude,
+				// 	locationName: data[0].name,
+				// });
+			},
+			fail(err) {
+				console.error(err);
+			},
+		});
+
+		// this.list = [{}, {}]
+		this.source = options.source || ''
+		this.listApi = '/api/address/list'
+		if (!this.currentInfo.id) {
+
+		} else {
 			await this.getList()
-			uni.stopPullDownRefresh()
+
+		}
+
+	},
+	onShow() {
+
+	},
+	computed: {
+		...mapState({
+			address: state => {
+				return state.defaultaddress || {}
+			},
+			addressDesc: state => {
+				return state.addressDesc || ''
+			},
+			// search_flow() {
+			// 	return this.addressDesc || ''
+			// }
+		}),
+
+	},
+	data() {
+		return {
+			source: '',
+			submitForm: {
+				name: '',
+				tel: '',
+				address: '',
+				isDefault: false,
+				province: '',
+				city: '',
+				region: '',
+				latitude: 0,
+				longitude: 0,
+			},
+			regionDataPlus: [],
+			list: [],
+			search_flow: '',
+		};
+	},
+	methods: {
+		selectGaodeAddress(){
+			uni.navigateTo({
+				url: '/pages/user/address/gaode-address'
+			})
 		},
-		async onLoad(options) {
-			// this.list = [{}, {}]
-			this.source = options.source || ''
-			this.listApi = '/api/address/list'
-			if (!this.currentInfo.id) {
+		selectWxAddress(source) {
+			let that = this
 
-			} else {
-				await this.getList()
+			{
+				//表单选择了地址
+				wx.chooseLocation({
+					success: location => {
+						console.log('success loc', location, source)
+						console.log(location)
+						// address: "江苏省苏州市吴中区太湖东路288号"
+						// errMsg: "chooseLocation:ok"
+						// latitude: 31.26249
+						// longitude: 120.63212
+						// name: "苏州市吴中区人民政府"
+						if (source === 'form') {
+							// (location.address || '') +
+							that.submitForm.address = (location.name || location.address || '')
+							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 || location.address || ''))
+							that.$forceUpdate()
+							that.backpage()
+						}
 
+						// if (!that.submitForm.province && location.provinceName) {
+						// 	that.submitForm.province = location.provinceName
+						// 	if (!that.submitForm.city && location.cityName) {
+						// 		that.submitForm.city = location.cityName
+						// 	}
+						// 	if (!that.submitForm.region && location.countyName) {
+						// 		that.submitForm.region = location.countyName
+						// 	}
+						// 	if (!that.submitForm.region && location.cityName) {
+						// 		that.submitForm.region = location.cityName
+						// 	}
+						// }
+						// success loc 
+						// {errMsg: "chooseAddress:ok", userName: "张三", nationalCode: "510000", telNumber: "020-81167888", postalCode: "510000", …}
+						// cityName: "广州市"
+						// countyName: "海珠区"
+						// detailInfo: "新港中路397号"
+						// errMsg: "chooseAddress:ok"
+						// nationalCode: "510000"
+						// postalCode: "510000"
+						// provinceName: "广东省"
+						// telNumber: "020-81167888"
+						// userName: "张三"
+					},
+					fail: e => {
+						console.log('fail loc', e)
+						// that.$message.showToast('定位失败')
+					}
+				})
+				// uni.getLocation({
+				// 	type: 'wgs84',
+				// 	success(res) {
+				// 		//得到经纬度
+				// 		console.log(res);
+				// 		const referer = '花满芫'; //调用插件的app的名称
+				// 		const location = JSON.stringify({
+				// 			latitude: res.latitude,
+				// 			longitude: res.longitude
+				// 		});
+				// 		const category = '生活服务,娱乐休闲';
+				// 		// &category=${category}
+
+				// 		wx.navigateTo({
+				// 			url: `plugin://chooseLocation/index?key=${lockey}&referer=${referer}&location=${location}`
+				// 		});
+
+				// 	}
+				// })
+			}
+		},
+		validatePhoneNumber() {
+
+			// 手机号码正则表达式,可以根据需要调整
+			const phoneRegex = /^[1][3-9][0-9]{9}$/;
+			if (!phoneRegex.test(this.submitForm['tel'])) {
+				this.$message.showToast('请填写正确手机号码')
 			}
 
 		},
-		onShow() {
-			// const location = chooseLocation.getLocation(); // 如果点击确认选点按钮,则返回选点结果对象,否则返回null
-			// // console.log('onshow location', location, this.tmp_picker_lock_index, this.formcodes["LOC_ONE"])
-			// // address: "江苏省苏州市吴中区太湖东路280号"
-			// // city: "苏州市"
-			// // district: "吴中区"
-			// // latitude: 31.262438
-			// // longitude: 120.633985
-			// // name: "太湖东路280号小区"
-			// // province: "江苏省"
-			// if (location && location.address) {
-			// 	this.submitForm.address = location.address
-			// 	this.submitForm.latitude = location.latitude
-			// 	this.submitForm.longitude = location.longitude
-			// 	if (!this.submitForm.province && location.province) {
-			// 		this.submitForm.province = location.province
-			// 		if (!this.submitForm.city && location.city) {
-			// 			this.submitForm.city = location.city
-			// 		}
-			// 		if (!this.submitForm.region && location.district) {
-			// 			this.submitForm.region = location.district
-			// 		}
-			// 		if (!this.submitForm.region && location.city) {
-			// 			this.submitForm.region = location.city
-			// 		}
-			// 	}
-			// 	this.$forceUpdate()
-			// }
+
+		addAddress() {
+			delete this.submitForm.id
+			this.submitForm['name'] = ''
+			this.submitForm['tel'] = ''
+			this.submitForm['address'] = ''
+			this.submitForm['province'] = ''
+			this.submitForm['city'] = ''
+			this.submitForm['region'] = ''
+			this.submitForm['isDefault'] = false
+			this.openAddressForm()
 		},
-		computed: {
-			...mapState({
-				address: state => {
-					return state.defaultaddress || {}
+		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
+					} = await 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.result && data.result.address || ''
+
+						that.$store.commit('setAddressDesc', (address || ''))
+						that.$forceUpdate()
+
+						that.backpage()
+
+					}
+
+
 				},
-				addressDesc: state => {
-					return state.addressDesc || ''
+				fail: (err) => {
+					that.error = err;
+					console.error('定位失败:', err);
 				},
-				// search_flow() {
-				// 	return this.addressDesc || ''
-				// }
-			}),
+				complete() {
+					that.$message.hideLoading()
+				}
+			});
+		},
+		PickArea(item, e) {
+			console.log('PickArea', item, e)
+			if (e.detail.value) {
+				this.submitForm.province = ''
+				this.submitForm.city = ''
+				this.submitForm.region = ''
+				if (e.detail.value.length == 2) {
+					if (!!e.detail.value[0])
+						this.submitForm.province = e.detail.value[0].value
+					if (!!e.detail.value[0])
+						this.submitForm.city = e.detail.value[0].value
+					if (!!e.detail.value[1])
+						this.submitForm.region = e.detail.value[1].value
+				} else if (e.detail.value.length <= 3) {
+					if (!!e.detail.value[0])
+						this.submitForm.province = e.detail.value[0].value
+					if (!!e.detail.value[1])
+						this.submitForm.city = e.detail.value[1].value
+					if (!!e.detail.value[2])
+						this.submitForm.region = e.detail.value[2].value
+				} else {
+					//说明有重复的
+					var plusnum = e.detail.value.length - 3
+					if (!!e.detail.value[plusnum + 0])
+						this.submitForm.province = e.detail.value[plusnum + 0].value
+					if (!!e.detail.value[plusnum + 1])
+						this.submitForm.city = e.detail.value[plusnum + 1].value
+					if (!!e.detail.value[plusnum + 2])
+						this.submitForm.region = e.detail.value[plusnum + 2].value
+				}
+
+				this.$forceUpdate()
+				console.log('submit forn', this.submitForm)
+			}
+		},
+		async init_area() {
+			// debugger;
+			// if (this.regionDataPlus && this.regionDataPlus.length > 0) {
+
+			// } else {
+			// var a = this.$storage.getItem('cache_area')
+			var a = false
+			if (a) {
+				this.regionDataPlus = JSON.parse(a) || []
+			} else {
+				await this.$http.request('get', '/api/pub/china/area/json/refresh')
+				const res = await this.$http.request('get', '/api/pub/china/area/json')
+				// console.log('area', JSON.parse(res.data))
+				this.regionDataPlus = res.data && JSON.parse(res.data.replaceAll('code', 'value').replaceAll(
+					'name',
+					'text')) || []
+				this.$storage.setItem('cache_area', JSON.stringify(this.regionDataPlus))
+			}
+			// }
 
 		},
-		data() {
-			return {
-				source: '',
-				submitForm: {
+		chooseLocation() {
+			//前往接口挑选位置
+			const qqmapsdk = new qqmapwx({
+				// 使用你在腾讯地图应用生成的key
+				key: lockey
+			});
+
+			uni.getLocation({
+				type: 'wgs84',
+				success(res) {
+					//得到经纬度
+					console.log(res);
+					qqmapsdk.reverseGeocoder({
+						location: {
+							latitude: res.latitude,
+							longitude: res.longitude
+						},
+						//成功后的回调
+						success: (r) => {
+							// console.log('地址信息', r.result.address_component);
+							// result: {location: {lat: 31.26249, lng: 120.63212}, address: "江苏省苏州市吴中区太湖东路288号",…}
+							// ad_info: {nation_code: "156", adcode: "320506", phone_area_code: "0512", city_code: "156320500",…}
+							// address: "江苏省苏州市吴中区太湖东路288号"
+							// address_component: {nation: "中国", province: "江苏省", city: "苏州市", district: "吴中区", street: "太湖东路",…}
+							// address_reference: {,…}
+							// formatted_addresses: {recommend: "长桥苏州市吴中区人民政府(太湖东路北)", rough: "长桥苏州市吴中区人民政府(太湖东路北)"}
+							// location: {lat: 31.26249, lng: 120.63212}
+							// status: 0
+							tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].longitude = r
+								.result.location.lng
+							tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].latitude = r
+								.result.location.lat
+							tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].loc_desc = r
+								.result.address
+							tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index]._show = false
+							tmp.$forceUpdate()
+							tmp.tmp_picker_lock_index = -1
+
+						},
+						fail: function (res) {
+							console.log(res);
+							tmp.tmp_picker_lock_index = -1
+						},
+					});
+				}
+			});
+		},
+		async changeDefaultAddress(item, index) {
+			if (item.isDefault) {
+				return
+			}
+			this.$nextTick(() => {
+
+				this.$message.confirm('确定设置此地址为默认地址吗').then(async res => {
+					this.$message.showLoading()
+					var {
+						code
+					} = await this.$http.request('post', '/api/address/set/default/' + item
+						.id, {
+						data: {
+							id: item.id
+						},
+						params: {
+							id: item.id
+						}
+					})
+					this.$message.hideLoading()
+					if (code === 0) {
+						for (var dto of this.list) {
+							dto.isDefault = false
+						}
+						this.$message.showToast('设置成功')
+						item.isDefault = true
+						this.$store.commit('setDefaultAddress', {
+							...item
+						})
+
+
+					}
+				}, err => {
+					this.$nextTick(() => {
+						this.list[index].isDefault = false
+						this.$forceUpdate()
+						console.log('err', err, this.list[index])
+					})
+
+
+				})
+			})
+		},
+		async selectAddress(item) {
+			//携带,然后返回
+
+			if (this.source === 'home') {
+				this.$store.commit('setAddressDesc', '')
+				this.$store.commit('setDefaultAddress', {
+					...item
+				})
+			} else {
+				await this.$message.confirm('确定选择此地址作为收货地址吗')
+				this.$store.commit('setDefaultAddress', {
+					...item
+				})
+
+			}
+			this.backpage()
+		},
+		async deleteAddress(item) {
+			await this.$message.confirm('确定删除此地址吗')
+			this.$message.showLoading()
+			var {
+				code
+			} = await this.$http.request('get', '/api/address/delete?id=' + item.id, {})
+			this.$message.hideLoading()
+			if (code === 0) {
+				this.$message.showToast('删除成功')
+				if (this.address.id === item.id) {
+					//要清空地址了
+					this.$store.commit('setDefaultAddress', {})
+				}
+				setTimeout(() => {
+					this.page.current = 1
+					this.getList()
+				}, 500)
+			}
+		},
+		async openAddressForm() {
+			this.init_area()
+			if (this.submitForm.id) {
+				this.$message.showLoading()
+				var {
+					data
+				} = await this.$http.request('get', '/api/address/list/detail?id=' + this.submitForm.id, {})
+
+
+				if (data) {
+					this.submitForm = {
+						...this.submitForm,
+						...data
+					}
+				}
+				this.$message.hideLoading()
+			} else {
+				this.submitForm = {
+					// name: this.currentInfo && this.currentInfo.nickName || '',
+					// tel: this.currentInfo && this.currentInfo.tel || '',
 					name: '',
 					tel: '',
 					address: '',
@@ -249,554 +615,191 @@
 					province: '',
 					city: '',
 					region: '',
-					latitude: 0,
-					longitude: 0,
-				},
-				regionDataPlus: [],
-				list: [],
-				search_flow: '',
-			};
+				}
+			}
+
+			this.$refs.popup_form.open()
+
 		},
-		methods: {
-			selectWxAddress(source) {
-				let that = this
+		closeAddressForm() {
+			this.$refs.popup_form.close()
 
-				{
-					//表单选择了地址
-					wx.chooseLocation({
-						success: location => {
-							console.log('success loc', location,source)
-							// address: "江苏省苏州市吴中区太湖东路288号"
-							// errMsg: "chooseLocation:ok"
-							// latitude: 31.26249
-							// longitude: 120.63212
-							// name: "苏州市吴中区人民政府"
-							if (source === 'form') {
-								// (location.address || '') +
-								that.submitForm.address = (location.name || location.address || '')
-								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 || location.address || ''))
-								that.$forceUpdate()
-								that.backpage()
-							}
+		},
+		async saveOrUpdateAddress() {
+			if (!this.checkFormValues(this.submitForm, ['tel', 'name', 'address'])) {
+				this.$message.showToast('字段未填写完整')
+				return
+			}
+			if (!this.submitForm['province'] || !this.submitForm['province'] || !this.submitForm['province']) {
+				this.$message.showToast('省市区未选择完整')
+				return
+			}
 
-							// if (!that.submitForm.province && location.provinceName) {
-							// 	that.submitForm.province = location.provinceName
-							// 	if (!that.submitForm.city && location.cityName) {
-							// 		that.submitForm.city = location.cityName
-							// 	}
-							// 	if (!that.submitForm.region && location.countyName) {
-							// 		that.submitForm.region = location.countyName
-							// 	}
-							// 	if (!that.submitForm.region && location.cityName) {
-							// 		that.submitForm.region = location.cityName
-							// 	}
-							// }
-							// success loc 
-							// {errMsg: "chooseAddress:ok", userName: "张三", nationalCode: "510000", telNumber: "020-81167888", postalCode: "510000", …}
-							// cityName: "广州市"
-							// countyName: "海珠区"
-							// detailInfo: "新港中路397号"
-							// errMsg: "chooseAddress:ok"
-							// nationalCode: "510000"
-							// postalCode: "510000"
-							// provinceName: "广东省"
-							// telNumber: "020-81167888"
-							// userName: "张三"
-						},
-						fail: e => {
-							console.log('fail loc', e)
-							// that.$message.showToast('定位失败')
-						}
-					})
-					// uni.getLocation({
-					// 	type: 'wgs84',
-					// 	success(res) {
-					// 		//得到经纬度
-					// 		console.log(res);
-					// 		const referer = '花满芫'; //调用插件的app的名称
-					// 		const location = JSON.stringify({
-					// 			latitude: res.latitude,
-					// 			longitude: res.longitude
-					// 		});
-					// 		const category = '生活服务,娱乐休闲';
-					// 		// &category=${category}
-
-					// 		wx.navigateTo({
-					// 			url: `plugin://chooseLocation/index?key=${lockey}&referer=${referer}&location=${location}`
-					// 		});
-
-					// 	}
-					// })
-				}
-			},
-			validatePhoneNumber() {
-
-				// 手机号码正则表达式,可以根据需要调整
-				const phoneRegex = /^[1][3-9][0-9]{9}$/;
-				if (!phoneRegex.test(this.submitForm['tel'])) {
-					this.$message.showToast('请填写正确手机号码')
-				}
-
-			},
-
-			addAddress() {
-				delete this.submitForm.id
-				this.submitForm['name'] = ''
-				this.submitForm['tel'] = ''
-				this.submitForm['address'] = ''
-				this.submitForm['province'] = ''
-				this.submitForm['city'] = ''
-				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
-						} = await 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.result&&data.result.address || ''
-							
-							that.$store.commit('setAddressDesc', (address || ''))
-							that.$forceUpdate()
-							
-							that.backpage()
-							
-						}
-						
-
-					},
-					fail: (err) => {
-						that.error = err;
-						console.error('定位失败:', err);
-					},
-					complete() {
-						that.$message.hideLoading()
-					}
-				});
-			},
-			PickArea(item, e) {
-				console.log('PickArea', item, e)
-				if (e.detail.value) {
-					this.submitForm.province = ''
-					this.submitForm.city = ''
-					this.submitForm.region = ''
-					if (e.detail.value.length == 2) {
-						if (!!e.detail.value[0])
-							this.submitForm.province = e.detail.value[0].value
-						if (!!e.detail.value[0])
-							this.submitForm.city = e.detail.value[0].value
-						if (!!e.detail.value[1])
-							this.submitForm.region = e.detail.value[1].value
-					} else if (e.detail.value.length <= 3) {
-						if (!!e.detail.value[0])
-							this.submitForm.province = e.detail.value[0].value
-						if (!!e.detail.value[1])
-							this.submitForm.city = e.detail.value[1].value
-						if (!!e.detail.value[2])
-							this.submitForm.region = e.detail.value[2].value
-					} else {
-						//说明有重复的
-						var plusnum = e.detail.value.length - 3
-						if (!!e.detail.value[plusnum + 0])
-							this.submitForm.province = e.detail.value[plusnum + 0].value
-						if (!!e.detail.value[plusnum + 1])
-							this.submitForm.city = e.detail.value[plusnum + 1].value
-						if (!!e.detail.value[plusnum + 2])
-							this.submitForm.region = e.detail.value[plusnum + 2].value
-					}
-
-					this.$forceUpdate()
-					console.log('submit forn', this.submitForm)
-				}
-			},
-			async init_area() {
-				// debugger;
-				// if (this.regionDataPlus && this.regionDataPlus.length > 0) {
-
-				// } else {
-					// var a = this.$storage.getItem('cache_area')
-					var a =false
-					if (a) {
-						this.regionDataPlus = JSON.parse(a) || []
-					} else {
-						await this.$http.request('get', '/api/pub/china/area/json/refresh')
-						const res = await this.$http.request('get', '/api/pub/china/area/json')
-						// console.log('area', JSON.parse(res.data))
-						this.regionDataPlus = res.data && JSON.parse(res.data.replaceAll('code', 'value').replaceAll(
-							'name',
-							'text')) || []
-						this.$storage.setItem('cache_area', JSON.stringify(this.regionDataPlus))
-					}
-				// }
-
-			},
-			chooseLocation() {
-				//前往接口挑选位置
-				const qqmapsdk = new qqmapwx({
-					// 使用你在腾讯地图应用生成的key
-					key: lockey
-				});
-
-				uni.getLocation({
-					type: 'wgs84',
-					success(res) {
-						//得到经纬度
-						console.log(res);
-						qqmapsdk.reverseGeocoder({
-							location: {
-								latitude: res.latitude,
-								longitude: res.longitude
-							},
-							//成功后的回调
-							success: (r) => {
-								// console.log('地址信息', r.result.address_component);
-								// result: {location: {lat: 31.26249, lng: 120.63212}, address: "江苏省苏州市吴中区太湖东路288号",…}
-								// ad_info: {nation_code: "156", adcode: "320506", phone_area_code: "0512", city_code: "156320500",…}
-								// address: "江苏省苏州市吴中区太湖东路288号"
-								// address_component: {nation: "中国", province: "江苏省", city: "苏州市", district: "吴中区", street: "太湖东路",…}
-								// address_reference: {,…}
-								// formatted_addresses: {recommend: "长桥苏州市吴中区人民政府(太湖东路北)", rough: "长桥苏州市吴中区人民政府(太湖东路北)"}
-								// location: {lat: 31.26249, lng: 120.63212}
-								// status: 0
-								tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].longitude = r
-									.result.location.lng
-								tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].latitude = r
-									.result.location.lat
-								tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index].loc_desc = r
-									.result.address
-								tmp.formcodes['LOC_ONE'][tmp.tmp_picker_lock_index]._show = false
-								tmp.$forceUpdate()
-								tmp.tmp_picker_lock_index = -1
-
-							},
-							fail: function(res) {
-								console.log(res);
-								tmp.tmp_picker_lock_index = -1
-							},
-						});
-					}
-				});
-			},
-			async changeDefaultAddress(item, index) {
-				if (item.isDefault) {
-					return
-				}
-				this.$nextTick(() => {
-
-					this.$message.confirm('确定设置此地址为默认地址吗').then(async res => {
-						this.$message.showLoading()
-						var {
-							code
-						} = await this.$http.request('post', '/api/address/set/default/' + item
-							.id, {
-								data: {
-									id: item.id
-								},
-								params: {
-									id: item.id
-								}
-							})
-						this.$message.hideLoading()
-						if (code === 0) {
-							for (var dto of this.list) {
-								dto.isDefault = false
-							}
-							this.$message.showToast('设置成功')
-							item.isDefault = true
-							this.$store.commit('setDefaultAddress', {
-								...item
-							})
-							
-
-						}
-					}, err => {
-						this.$nextTick(() => {
-							this.list[index].isDefault = false
-							this.$forceUpdate()
-							console.log('err', err, this.list[index])
-						})
+			// 手机号码正则表达式,可以根据需要调整
+			const phoneRegex = /^[1][3-9][0-9]{9}$/;
+			if (!phoneRegex.test(this.submitForm['tel'])) {
+				this.$message.showToast('请填写正确手机号码')
+				return
+			}
 
 
-					})
-				})
-			},
-			async selectAddress(item) {
-				//携带,然后返回
-				
-				if(this.source==='home'){
-					this.$store.commit('setAddressDesc', '')		
-					this.$store.commit('setDefaultAddress', {
-						...item
-					})
-				}else{
-					await this.$message.confirm('确定选择此地址作为收货地址吗')
-					this.$store.commit('setDefaultAddress', {
-						...item
-					})
-					
-				}				
-				this.backpage()
-			},
-			async deleteAddress(item) {
-				await this.$message.confirm('确定删除此地址吗')
-				this.$message.showLoading()
-				var {
-					code
-				} = await this.$http.request('get', '/api/address/delete?id=' + item.id, {})
-				this.$message.hideLoading()
-				if (code === 0) {
-					this.$message.showToast('删除成功')
-					if (this.address.id === item.id) {
-						//要清空地址了
-						this.$store.commit('setDefaultAddress', {})
-					}
-					setTimeout(() => {
-						this.page.current = 1
-						this.getList()
-					}, 500)
-				}
-			},
-			async openAddressForm() {
-				this.init_area()
-				if (this.submitForm.id) {
-					this.$message.showLoading()
-					var {
-						data
-					} = await this.$http.request('get', '/api/address/list/detail?id=' + this.submitForm.id, {})
 
-
-					if (data) {
-						this.submitForm = {
-							...this.submitForm,
-							...data
-						}
-					}
-					this.$message.hideLoading()
-				} else {
-					this.submitForm = {
-						// name: this.currentInfo && this.currentInfo.nickName || '',
-						// tel: this.currentInfo && this.currentInfo.tel || '',
-						name: '',
-						tel: '',
-						address: '',
-						isDefault: false,
-						province: '',
-						city: '',
-						region: '',
-					}
-				}
-
-				this.$refs.popup_form.open()
-
-			},
-			closeAddressForm() {
+			this.$message.showLoading()
+			const {
+				code
+			} = await this.$http.request('post', '/api/address/' + (this.submitForm.id ? 'update' :
+				'add'), {
+				data: this.submitForm
+			})
+			this.$message.hideLoading()
+			if (code === 0) {
 				this.$refs.popup_form.close()
+				this.$message.showToast(this.submitForm.id ? '修改成功' : '新增成功')
 
-			},
-			async saveOrUpdateAddress() {
-				if (!this.checkFormValues(this.submitForm, ['tel', 'name', 'address'])) {
-					this.$message.showToast('字段未填写完整')
-					return
+				let tmp = this
+				setTimeout(() => {
+					tmp.page.current = 1
+					tmp.refreshList()
+				}, 300)
+				//如果当前选择的地址是这个,需要更新一下数据
+				if (this.address.id && this.submitForm.id === this.address.id) {
+					this.$store.commit('setDefaultAddress', {
+						...this.submitForm
+					})
 				}
-				if (!this.submitForm['province'] || !this.submitForm['province'] || !this.submitForm['province']) {
-					this.$message.showToast('省市区未选择完整')
-					return
-				}
+			}
+		},
 
-				// 手机号码正则表达式,可以根据需要调整
-				const phoneRegex = /^[1][3-9][0-9]{9}$/;
-				if (!phoneRegex.test(this.submitForm['tel'])) {
-					this.$message.showToast('请填写正确手机号码')
-					return
-				}
-
-
-
-				this.$message.showLoading()
-				const {
-					code
-				} = await this.$http.request('post', '/api/address/' + (this.submitForm.id ? 'update' :
-					'add'), {
-					data: this.submitForm
-				})
-				this.$message.hideLoading()
-				if (code === 0) {
-					this.$refs.popup_form.close()
-					this.$message.showToast(this.submitForm.id ? '修改成功' : '新增成功')
-
-					let tmp = this
-					setTimeout(() => {
-						tmp.page.current = 1
-						tmp.refreshList()
-					}, 300)
-					//如果当前选择的地址是这个,需要更新一下数据
-					if (this.address.id && this.submitForm.id === this.address.id) {
-						this.$store.commit('setDefaultAddress', {
-							...this.submitForm
-						})
-					}
-				}
-			},
-
-		}
 	}
+}
 </script>
 
 <style lang="scss" scoped>
-	.container-address {
-		.current-address {
-			padding: 20rpx;
-			background-color: #FFFFFF;
-			border-radius: 16rpx;
-			margin-top: 16rpx;
-			margin-bottom: 20rpx;
-		}
+.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;
-			// width: 690rpx;
-			height: 882rpx;
-			margin-top: 120rpx;
-			margin-left: 30rpx;
-			margin-right: 30rpx;
-			padding: 24rpx 36rpx;
+	.popup-address-form {
+		background: #FFFFFF;
+		border-radius: 16rpx;
+		// width: 690rpx;
+		height: 882rpx;
+		margin-top: 120rpx;
+		margin-left: 30rpx;
+		margin-right: 30rpx;
+		padding: 24rpx 36rpx;
 
-			.submit {
-				margin-top: 30rpx;
+		.submit {
+			margin-top: 30rpx;
 
-				.form-input {
-					height: 36rpx;
-					line-height: 36rpx;
-				}
-			}
-		}
-
-		.location-each {
-			background: #FFFFFF;
-			border-radius: 16rpx;
-			margin-bottom: 24rpx;
-			padding: 36rpx;
-
-			.name {
-				font-size: 32rpx;
-				color: #000000;
-				line-height: 44rpx;
-				text-align: left;
-				font-style: normal;
-			}
-
-			.tel {
-				font-size: 28rpx;
-				color: #666666;
-				line-height: 40rpx;
-				text-align: left;
-				font-style: normal;
-				padding-top: 4rpx;
-				margin-left: 20rpx;
-			}
-
-			.address {
-				font-size: 24rpx;
-				color: #000000;
-				line-height: 34rpx;
-				text-align: left;
-				font-style: normal;
-			}
-
-			.desc {
-				font-size: 24rpx;
-				color: #666666;
-				line-height: 34rpx;
-				text-align: left;
-				font-style: normal;
-			}
-
-			.del {
-				// vertical-align: baseline;
-				margin-left: auto;
-				margin-right: 6rpx;
-				margin-top: 4rpx;
-			}
-
-			.container-info {
-				max-width: 540rpx;
-			}
-
-			.h-line {
-				width: 2rpx;
-				height: 46rpx;
-				background-color: #EEEEEE;
-				margin-left: 28rpx;
-				margin-right: 24rpx;
-			}
-
-			.v-line {
-				width: 638rpx;
-				height: 2rpx;
-				// border: 2rpx solid #EEEEEE;
-				background-color: #EEEEEE;
-				margin-top: 24rpx;
-				margin-bottom: 24rpx;
-			}
-
-			.edit {
-				// min-width: 80rpx;
-				width: fit-content;
-				margin-left: auto;
-				margin-right: 0rpx;
-				display: flex;
-				position: relative;
-
-				.icon {
-					// margin: 0 auto;
-					// mar
-					margin-left: auto;
-					margin-right: auto;
-					margin-top: 20rpx;
-					display: block;
-
-				}
-			}
-
-			.edit::before {
-				content: " ";
-				width: 2rpx;
-				height: 46rpx;
-				background-color: #EEEEEE;
-				position: absolute;
-				left: -24rpx;
-				top: 20rpx;
+			.form-input {
+				height: 36rpx;
+				line-height: 36rpx;
 			}
 		}
 	}
+
+	.location-each {
+		background: #FFFFFF;
+		border-radius: 16rpx;
+		margin-bottom: 24rpx;
+		padding: 36rpx;
+
+		.name {
+			font-size: 32rpx;
+			color: #000000;
+			line-height: 44rpx;
+			text-align: left;
+			font-style: normal;
+		}
+
+		.tel {
+			font-size: 28rpx;
+			color: #666666;
+			line-height: 40rpx;
+			text-align: left;
+			font-style: normal;
+			padding-top: 4rpx;
+			margin-left: 20rpx;
+		}
+
+		.address {
+			font-size: 24rpx;
+			color: #000000;
+			line-height: 34rpx;
+			text-align: left;
+			font-style: normal;
+		}
+
+		.desc {
+			font-size: 24rpx;
+			color: #666666;
+			line-height: 34rpx;
+			text-align: left;
+			font-style: normal;
+		}
+
+		.del {
+			// vertical-align: baseline;
+			margin-left: auto;
+			margin-right: 6rpx;
+			margin-top: 4rpx;
+		}
+
+		.container-info {
+			max-width: 540rpx;
+		}
+
+		.h-line {
+			width: 2rpx;
+			height: 46rpx;
+			background-color: #EEEEEE;
+			margin-left: 28rpx;
+			margin-right: 24rpx;
+		}
+
+		.v-line {
+			width: 638rpx;
+			height: 2rpx;
+			// border: 2rpx solid #EEEEEE;
+			background-color: #EEEEEE;
+			margin-top: 24rpx;
+			margin-bottom: 24rpx;
+		}
+
+		.edit {
+			// min-width: 80rpx;
+			width: fit-content;
+			margin-left: auto;
+			margin-right: 0rpx;
+			display: flex;
+			position: relative;
+
+			.icon {
+				// margin: 0 auto;
+				// mar
+				margin-left: auto;
+				margin-right: auto;
+				margin-top: 20rpx;
+				display: block;
+
+			}
+		}
+
+		.edit::before {
+			content: " ";
+			width: 2rpx;
+			height: 46rpx;
+			background-color: #EEEEEE;
+			position: absolute;
+			left: -24rpx;
+			top: 20rpx;
+		}
+	}
+}
 </style>
\ No newline at end of file
diff --git a/pages/user/address/gaode-address.vue b/pages/user/address/gaode-address.vue
new file mode 100644
index 0000000..d748557
--- /dev/null
+++ b/pages/user/address/gaode-address.vue
@@ -0,0 +1,359 @@
+<template>
+	<view class="content">
+		<!-- 	<view class="btns">
+			<view @click="back">取 消</view>
+			<view @click="getCurrentLocation">获取当前地址</view>
+		</view> -->
+		<view class="inputCon">
+			<view class="searchView">
+				<text class="iconfont icon-sousuo"  @click="searchFn"></text>
+				<input type="text" placeholder="搜索地点" v-model="searchWords" confirm-type="search" @confirm="searchFn" />
+				<text @click="cancel">取消</text>
+			</view>
+		</view>
+		<!-- 地图部分 -->
+		<view class="content-map">
+			<map style="width: 100%;height: 100%;" v-if="mapFlafg" :latitude="latitude" :longitude="longitude" :markers="markers"
+				@tap="tap"  :scale="16"  :title="title"/>
+		</view>
+		<!-- <view id="container"></view> -->
+		<!--  搜索框 -->
+ 
+		<!--  地点列表部分 -->
+		<view class="list">
+			<view class="item" v-for="(add,index) in dataTips" :key="add.id" @click="select(add,index)"
+				:class="selectIndex==index?'active':''">
+				<view class="name">{{add.name}}</view>
+				<view class="address">{{add.district || ''}}{{add.address || ''}}</view>
+			</view>
+		</view>
+	</view>
+</template>
+ 
+<script>
+	// 引入高德地图api提供的微信小程序的接口
+	import amapFile from '@/map/amap-wx.130.js';
+	// 创建地图
+	var myAmapFun = new amapFile.AMapWX({
+		key: '75d7da3feb329cd5ae997975b953abb6'
+	}); //key值要申请为 去高德地图申请微信小程序的key
+	// var myAmapFun = new amapFile.AMapWX({key: ''}); //key我的
+	export default {
+		data() {
+			return {
+				mapFlafg:false,
+				selectIndex: undefined,
+				selectAddr: {},
+				searchWords: "",
+				id: 1, // 使用 marker点击事件 需要填写id
+				title: 'map',
+				latitude: 39.91667, // 纬度
+				longitude: 116.41667, // 经度
+ 
+				markers: [{
+					latitude: 39.91667, // 纬度
+					longitude: 116.41667, // 经度
+					width: 30,
+					height: 30,
+					iconPath: ''
+					// iconPath: '../../static/ditu.png'
+				}],
+				dataTips: []
+			}
+		},
+		onLoad() {
+			var self = this;
+			uni.getLocation({
+				type: 'gcj02',
+				success: function(res) {
+					console.log(res, '当前地址定位');
+					if (res.errMsg == "getLocation:ok") {
+						console.log(self.mark, 'onload里面看看');
+						self.longitude = res.longitude;
+						self.latitude = res.latitude;
+						self.$set(self.markers[0],"longitude",res.longitude);
+						self.$set(self.markers[0],"latitude",res.latitude);
+						self.mapFlafg=true;
+						console.log(self.markers,"markers")
+						// self.markers[0].longitude = res.longitude;
+						// self.markers[0].latitude = res.latitude;
+					}
+				},
+				complete: () => {
+					// 获取当前位置的地点列表
+					myAmapFun.getPoiAround({
+						location: self.longitude + ',' + self.latitude,
+						success: (data) => {
+							console.log("获取当前的列表", data);
+							this.dataTips = data.poisData;
+						},
+						fail: (info) => {
+							console.log(info, '点击地图错误信息1')
+						}
+					})
+				}
+			});
+			
+		},
+		methods: {
+			cancel() {
+				if (this.searchWords) {
+					this.searchWords = "";
+					myAmapFun.getPoiAround({
+						location: this.markers[0].longitude + ',' + this.markers[0].latitude,
+						success: (data) => {
+							console.log("获取当前的列表", data);
+							this.$nextTick(() => {
+								this.dataTips = data.poisData;
+							})
+						},
+						fail: (info) => {
+							console.log(info)
+						}
+					})
+				}
+			},
+			reserGeo() {
+				myAmapFun.getRegeo({
+					success: (data) => {
+						console.log("getRegeo", data);
+					},
+					fail: (info) => {
+						console.log(info)
+					}
+				})
+			},
+			// 根据地址列表中选择某一个地点
+			select(add, index) {
+				if (!add) {
+					return;
+				}
+				this.selectIndex = index;
+				var location = add.location.split(",");
+				console.log(location, add, '列表地点的经纬度');
+				this.selectAddr = {
+					address: add.pname ? (add.pname + add.cityname + add.adname) : (add.district + add
+						.address),
+					detailAddress: add.address,
+					latitude: location[1],
+					longitude: location[0]
+				};
+				this.markers[0].latitude = +location[1];
+				this.markers[0].longitude = +location[0];
+				uni.setStorageSync("address", this.selectAddr.address);
+				// 选择地点后,将选取的地点传递到前一个页面中
+				// var pages = getCurrentPages(); // 获取所有的页面栈
+				// var prevPage = pages[pages.length - 2]; // 找到上一个页面,注意是页面,如果是页面中有组件,则需要通过页面接受到数据后,再次往组件中传递
+				// prevPage.$vm.userAddress.locationAddress = this.selectAddr.address; //在上一个页面中就可以用userAddress进行接收
+				// prevPage.$vm.userAddress.detail = this.selectAddr.detailAddress; //在上一个页面中就可以用userAddress进行接收
+				// prevPage.$vm.selectAddr = this.selectAddr;
+				// prevPage.$vm.address = {
+				// 	province: add.pname,
+				// 	city: add.cityname,
+				// 	district: add.adname,
+				// }
+				uni.navigateBack({
+					delta: 1
+				});
+ 
+			},
+			// 在地图上点击进行选点,这个选点在地图缩放比例较大时无效,因为精读的问题。
+			tap(e) {
+				console.log(e, '点击了地图');
+				var location = e.detail.longitude + ',' + e.detail.latitude
+				myAmapFun.getRegeo({
+					location: location,
+					success: (data) => {
+						console.log("获取指定定位信息", data);
+						this.selectAddr = {
+							address: data[0].regeocodeData.formatted_address,
+							latitude: e.detail.latitude,
+							longitude: e.detail.longitude
+						};
+						this.markers[0].latitude = data[0].latitude;
+						this.markers[0].longitude = data[0].longitude;
+						myAmapFun.getPoiAround({
+							location: data[0].longitude + ',' + data[0].latitude,
+							success: (data) => {
+								console.log("获取当前的列表", data);
+								this.dataTips = data.poisData;
+							},
+							fail: (info) => {
+								console.log(info, '点击地图错误信息1')
+							}
+						})
+					},
+					fail: (info) => {
+						console.log(info, '点击地图错误信息2');
+					}
+				})
+			},
+			// 根据内容进行检索
+			searchFn() {
+				console.log("根据地址检索", this.searchWords);
+				myAmapFun.getInputtips({
+					keywords: this.searchWords,
+					location: '',
+					success: (data) => {
+						console.log(111, data);
+						if (data && data.tips) {
+							this.dataTips = data.tips;
+						}
+					},
+					fail: data => {
+						console.log(222, data);
+					}
+				})
+			},
+			// getCurrentLocation() {
+			// 	let that = this
+			// 	uni.getLocation({
+			// 		type: 'wgs84',
+			// 		success: function(res) {
+			// 			console.log(res, '当前地址定位');
+			// 			if (res.errMsg == "getLocation:ok") {
+			// 				console.log(that.mark, 'onload里面看看');
+			// 				this.longitude = res.longitude;
+			// 				this.latitude = res.latitude;
+			// 				this.markers[0].longitude = res.longitude;
+			// 				this.markers[0].latitude = res.latitude;
+			// 			}
+			// 		}
+			// 	});
+			// },
+		}
+	}
+</script>
+ 
+<style lang="scss" scoped>
+	.btns {
+ 
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: 260upx;
+		width: 100%;
+		background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0));
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		z-index: 10 !important;
+ 
+		view {
+			border-radius: 10%;
+			margin: 100upx 24upx 0;
+			font-size: 30upx;
+ 
+			&:first-child {
+				color: #fff;
+			}
+ 
+			&:last-child {
+				width: 100upx;
+				height: 60upx;
+				line-height: 60upx;
+				text-align: center;
+				border-radius: 10upx;
+				background: #20c295;
+				color: #fff;
+			}
+		}
+	}
+ 
+	.content {
+		// position: relative;
+		height: 100vh;
+		display: flex;
+		flex-direction: column;
+ 
+		.content-map {
+			width: 100%;
+			height: 50vh;
+		}
+ 
+		.list {
+			// flex: 0 1 calc(50vh - 10upx);
+			border-radius: 30rpx;
+			background-color: #fff;
+			// position: absolute;
+			// bottom:-660rpx;
+			height: calc(50vh - 10upx);
+			overflow-y: auto;
+			width: 100%;
+			margin: 0upx auto 0;
+			padding-bottom: 20upx;
+ 
+			.item {
+				border-bottom: 2upx solid #f3f3f3;
+				padding: 0 30rpx;
+ 
+				&:last-child {
+					border: none;
+				}
+ 
+				.address {
+					font-size: 22upx;
+					color: #666;
+					margin: 10upx 0;
+				}
+ 
+				.name {
+					font-size: 30upx;
+					color: #333;
+					margin-top: 10upx;
+				}
+ 
+				&.active {
+					.name {
+						font-weight: bold;
+						color: #E13500;
+					}
+ 
+					.address {
+						color: #E13500;
+					}
+				}
+			}
+		}
+ 
+		.inputCon {
+			flex: 0 1 108rpx;
+			width: 100%;
+			background: #fff;
+			// top: -60upx;
+			// position: relative;
+			z-index: 20;
+			// height: 100upx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+ 
+			.searchView {
+				width: 702upx;
+				height: 60upx;
+				display: flex;
+				align-items: center;
+				line-height: 60upx;
+				border-radius: 40upx;
+				padding: 0 30upx;
+				box-sizing: border-box;
+				background: #f3f3f3;
+				font-size: 26upx;
+ 
+				.iconfont {
+					color: #666;
+					margin-right: 20upx;
+				}
+ 
+				input {
+					flex: 1;
+				}
+ 
+				view {
+					flex-shrink: 0;
+				}
+			}
+		}
+ 
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3