From e86b3edfe6d0cad7d744828a65ca1330e84fdcde Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Wed, 18 Oct 2023 10:51:57 +0800
Subject: [PATCH] Merge branch 'feature_1.0'

---
 src/components/map/pickCoordinate1.vue |  214 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 154 insertions(+), 60 deletions(-)

diff --git a/src/components/map/pickCoordinate1.vue b/src/components/map/pickCoordinate1.vue
index 4b75cec..255a951 100644
--- a/src/components/map/pickCoordinate1.vue
+++ b/src/components/map/pickCoordinate1.vue
@@ -1,33 +1,62 @@
 <template>
-  <a-modal
-    title="������������"
-    destroyOnClose
-    :visible="true"
-    @ok="addLonAndLat"
-    @cancel="handleMapCancel"
-    okText="������"
-    class="modalStyle"
-  >
+  <a-modal title="������������" destroyOnClose :visible="true" @ok="addLonAndLat" @cancel="handleMapCancel" okText="������"
+    class="modalStyle">
     <div>
-      <p>
-        <span>���������</span
-        ><a-input
-          v-model="keyword"
-          style="display: inline; width: 160px; height: 26px"
-        />
-        <span style="margin-left: 25px">���������</span
-        ><a-input
-          v-model="clickPoint.lng"
-          style="display: inline; width: 160px; height: 26px"
-        />
-        <span style="margin-left: 25px">���������</span
-        ><a-input
-          v-model="clickPoint.lat"
-          style="display: inline; width: 160px; height: 26px"
-        />
-      </p>
+      <div style="display: flex">
+        <div style="display: flex; width: 300px">
+          <div>���������</div>
+          <!-- <a-input
+            placeholder="���������������"
+            id="tipinput"
+            style="width: 160px; height: 26px"
+          ></a-input> -->
+          <!-- <a-input
+            v-model="input"
+            placeholder="���������������"
+            id="tipinput"
+            style="width: 160px; height: 26px"
+            @change="searchMap"
+          ></a-input> -->
+          <input v-model="input" id="tipinput" /><button @click="searchAddress" style="
+              background-color: #1890ff;
+              color: white;
+              border: none;
+              margin-left: 5px;
+            ">
+            ������
+          </button>
+          <div id="panel"></div>
+          <!-- <a-button
+            size="small"
+            type="primary"
+            @click="searchMap"
+            style="margin-left: 10px"
+            >������</a-button
+          > -->
+
+          <!-- <el-amap-search-box
+            :search-option="searchOption"
+            :on-search-result="selectPoi"
+            style="width: 200px; height: 26px; margin-left: 10px;border;"
+          /> -->
+          <!-- <a-input style="width: 160px; height: 26px" @focus="selectPoi" /> -->
+        </div>
+        <div>
+          <span style="margin-left: 25px">���������</span><a-input v-model="clickPoint[0]"
+            style="display: inline; width: 160px; height: 26px" />
+        </div>
+        <div>
+          <span style="margin-left: 25px">���������</span><a-input v-model="clickPoint[1]"
+            style="display: inline; width: 160px; height: 26px" />
+        </div>
+      </div>
+      <el-amap ref="map" :center="clickPoint" :events="{ click: mapClick }" :zoom="zoom" :scroll-wheel-zoom="true"
+        style="height: 400px; width: 100%; margin-top: 20px" id="amap">
+        <el-amap-marker :position="clickPoint" animation="AMAP_ANIMATION_BOUNCE" :dragging="true"></el-amap-marker>
+      </el-amap>
+
       <!--      :scroll-wheel-zoom="true"-->
-      <baidu-map
+      <!-- <baidu-map
         :center="center"
         :zoom="zoom"
         @ready="handler"
@@ -48,7 +77,7 @@
           >
           </bm-marker>
         </bm-control>
-      </baidu-map>
+      </baidu-map> -->
     </div>
   </a-modal>
 </template>
@@ -62,15 +91,17 @@
 } from 'vue-property-decorator';
 import any = jasmine.any;
 import { get, post } from "@/util/request";
+import $ from 'jquery'
+import func from 'vue-temp/vue-editor-bridge';
 
 
 @Component({
 })
 export default class PickCoordinate extends Vue {
-  private center: any = {
-    lng: 120.726838,
-    lat: 31.3421
-  }
+  private center: any = [
+    120.726838,
+    31.3421
+  ]
   @Prop({
     type: String,
     default: ''
@@ -84,15 +115,19 @@
   private typeOperation!: string
 
   private keyword: string = ''
-  private zoom = 3
-
-  @Watch('clickPoint', {deep: true})
-  private monitorMapFlag(newVal: any, oldVal: any) {
-    this.center.lng = newVal.lng
-    this.center.lat = newVal.lat
+  private zoom = 19
+  private searchOption: any = {
+    city: '������',
+    citylimit: false
   }
+  @Watch('clickPoint', { deep: true, immediate: true },)
+  private monitorMapFlag(newVal: any, oldVal: any) {
+    console.log(newVal, 'newVal');
+    this.center = [newVal.lng, newVal.lat]
+  }
+  private num1: any = 1
 
-  @Watch('lnglat', {deep: true, immediate: true})
+  @Watch('lnglat', { deep: true, immediate: true })
   private lnglatWatch(newVal: any, oldVal: any) {
     console.log('------------');
     console.log(newVal);
@@ -100,32 +135,57 @@
     // this.center.lat = newVal.lat
   }
   private created() {
-
+    // console.log(this.clickPoint,'clickPoint');
   }
 
+  private input: any = ''
+  private mark: any = ''
 
-
-
-  // ���������������
-  private handler({BMap, map}) {
-    this.center.lng =  this.typeOperation === 'add' ? '120.726838' : this.lnglat.split(',')[1]
-    this.center.lat =  this.typeOperation === 'add' ? '31.3421' : this.lnglat.split(',')[0]
-    this.zoom = 19
-
+  private searchAddress() {
+    var map = new AMap.Map("amap", {
+      resizeEnable: true
+    });
+    var placeSearch = new AMap.PlaceSearch({
+      pageSize: 5, // ������������������������
+      pageIndex: 1, // ������
+      city: "������", // ���������������
+      citylimit: false,  //���������������������������������������������
+      panel: "panel", // ���������������������������������������������
+      map: map, // ���������������������������
+      autoFitView: true // ������������������������������������������ Marker���������������������������������
+    });
+    //���������������
+    placeSearch.search(this.input)
+    var salf = this
+    var markerone = 0
+    map.on('click', click);
+    function click(e) {
+      if (markerone === 1) {
+        map.remove(map.Marker)
+      }
+      salf.mapClick(e)
+      map.Marker = new AMap.Marker({
+        map: map,
+        position: salf.clickPoint,
+        animation: "AMAP_ANIMATION_BOUNCE"
+      })
+      markerone = 1
+    }
   }
   // ���������������������������
-  private clickPoint: any = this.lnglat === '' ?  {
-        lng: ' 120.726838',
-        lat: ' 31.3421'
-      } : {
-    lng: this.lnglat.split(',')[1],
-    lat: this.lnglat.split(',')[0]
-  }
+  private clickPoint: any = this.lnglat === '' ? [
+    120.720262,
+    31.335757
+  ] : [
+    this.lnglat.split(',')[1],
+    this.lnglat.split(',')[0]
+  ]
 
   private mapClick(e: any) {
-    const { lng, lat } = e.point
-    this.clickPoint.lng = lng
-    this.clickPoint.lat = lat
+    // console.log(e);
+    const { lng, lat } = e.lnglat
+    this.clickPoint = [lng, lat]
+    console.log(this.clickPoint);
   }
 
   private handleMapCancel() {
@@ -135,11 +195,12 @@
 
   private addLonAndLat() {
     if (this.typeOperation === 'add') {
+      console.log('add');
       this.sendLonLat(this.clickPoint)
     } else {
+      console.log('upa');
       this.editLonLat(this.clickPoint)
     }
-
     this.flagSend(false)
   }
 
@@ -150,27 +211,60 @@
 
   @Emit('sendLonLat')
   private sendLonLat(lonLat: any) {
+    console.log(lonLat, 'jia');
     return lonLat;
   }
 
   @Emit('editLonLat')
   private editLonLat(lonLat: any) {
+    console.log(lonLat, 'gai');
     return lonLat;
   }
 }
 </script>
 
-<style  lang="less">
+<style  lang="less" scoped>
 .modalStyle {
   .ant-modal {
     margin-left: 25%;
   }
+
   .ant-modal-content {
     width: 800px;
   }
 }
+
 .BMap_cpyCtrl,
 .anchorBL {
   display: none;
 }
+
+/* ���������������������logo */
+/deep/.amap-logo {
+  display: none;
+  opacity: 0 !important;
+}
+
+/deep/.amap-copyright {
+  opacity: 0;
+}
+
+.amap-sug-result {
+  position: absolute;
+  z-index: 9999 !important;
+  background-color: #fefefe;
+  border: 1px solid #d1d1d1;
+  bottom: auto;
+}
+
+#panel {
+  z-index: 999;
+  position: absolute;
+  background-color: white;
+  max-height: 100%;
+  overflow-y: auto;
+  left: 25px;
+  width: 280px;
+  top: 126px;
+}
 </style>

--
Gitblit v1.8.0