From 635816d68e5f45e8c144beb955e1a698a69d6829 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Wed, 10 Jan 2024 17:05:35 +0800
Subject: [PATCH] 添加经纬度选择

---
 src/views/toCarryOutLegislativeReforms/components/locationMap.vue |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/src/views/toCarryOutLegislativeReforms/components/locationMap.vue b/src/views/toCarryOutLegislativeReforms/components/locationMap.vue
index 7d6e68e..55060e6 100644
--- a/src/views/toCarryOutLegislativeReforms/components/locationMap.vue
+++ b/src/views/toCarryOutLegislativeReforms/components/locationMap.vue
@@ -23,8 +23,25 @@
             prefix-icon="el-icon-search"
             placeholder="���������������"
             class="input-with-select"
+            style="margin-right: 10px"
             @keyup.enter.native="searchPlace"
           />
+          <el-input
+            v-model="positionInput"
+            :disabled="$parent.mapType!=='edit'"
+            prefix-icon="el-icon-position"
+            placeholder="������������������"
+            class="input-with-select"
+            style="margin-right: 10px"
+            @keyup.enter.native="searchAddress"
+          />
+          <el-button
+            v-if="$parent.mapType==='edit'"
+            type="primary"
+            @click="search"
+          >
+            ������
+          </el-button>
         </div>
         <div id="mapd" />
       </div>
@@ -45,7 +62,8 @@
       marker: null,
       placeSearchName: null,
       mapPlaceSearch: null,
-      position: []
+      position: [],
+      positionInput: ''
     }
   },
   mounted () {
@@ -82,20 +100,26 @@
         let autoComplete = new AMap.Autocomplete(autoOptions)
         AMap.event.addListener(autoComplete, 'select', function (e) {
           that.map.clearMap()
-          that.mapPlaceSearch.search(e.poi.name)
+          this.position = []
+          console.log('eee', e.poi.name)
+          console.log('eee', that.placeSearchName)
+          that.placeSearchName = e.poi.name
+          // that.mapPlaceSearch.search(e.poi.name)
         })
         AMap.event.addListener(that.mapPlaceSearch, 'markerClick', function (e) {
           that.position = [e.data.location.lng, e.data.location.lat]
+          that.positionInput = e.data.location.lng + ',' + e.data.location.lat
           this.placeSearchName = e.data.cityname + e.data.adname + e.data.address
           console.log(e)
           console.log(this.placeSearchName)
-          document.getElementById('tipinput').value = e.data.name
+          document.getElementById('tipinput').value = e.data.cityname + e.data.adname + e.data.address
         })
       })
       if (this.$parent.mapType === 'edit') {
         map.on('click', function (ev) {
           that.map.clearMap()
           that.position = [ev.lnglat.lng, ev.lnglat.lat]
+          that.positionInput = ev.lnglat.lng + ',' + ev.lnglat.lat
           that.marker = new AMap.Marker({
             position: that.position,
             offset: new AMap.Pixel(-13, -30)
@@ -109,6 +133,7 @@
           map: map,
           position: that.$parent.position
         })
+        that.positionInput = that.$parent.position.join(',')
         that.marker.setMap(map)
         that.map.setCenter(that.$parent.position)
         that.marker.setAnimation('AMAP_ANIMATION_BOUNCE')
@@ -121,12 +146,33 @@
         geocoder.getAddress(position, (status, result) => {
           if (status === 'complete' && result.info === 'OK') {
             this.placeSearchName = result.regeocode.formattedAddress
+            document.getElementById('tipinput').value = result.regeocode.formattedAddress
           }
         })
       })
     },
+    search () {
+      console.log('search', this.placeSearchName)
+      if (this.positionInput) {
+        this.searchAddress()
+        return
+      }
+      if (this.placeSearchName) {
+        this.searchPlace(this.placeSearchName)
+      }
+    },
     searchPlace () {
       this.mapPlaceSearch.search(this.placeSearchName)
+    },
+    searchAddress () {
+      this.map.clearMap()
+      this.marker = new AMap.Marker({
+        map: this.map,
+        position: this.positionInput.split(',')
+      })
+      this.marker.setMap(this.map)
+      this.map.setCenter(this.positionInput.split(','))
+      this.getAddress(this.positionInput.split(','))
     },
     close () {
       this.map.destroy()
@@ -147,6 +193,7 @@
     position: relative;
     .searchBox{
       position: absolute;
+      display: flex;
       z-index: 100;
        width: 100%;
     }

--
Gitblit v1.8.0