From c393f8b721c1e7f6ea65ff0f3ad3a47dce71cfbc Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 21 Jan 2025 10:20:34 +0800
Subject: [PATCH] 格式异常问题解决

---
 src/components/map/searchMap.vue |  107 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 65 insertions(+), 42 deletions(-)

diff --git a/src/components/map/searchMap.vue b/src/components/map/searchMap.vue
index 4c46997..14e55d0 100644
--- a/src/components/map/searchMap.vue
+++ b/src/components/map/searchMap.vue
@@ -2,26 +2,26 @@
   <div class="basic-container">
     <div class="search-line">
       <el-select
-            class="search-input"
-            v-model="queryString"
-            filterable
-            remote
-            reserve-keyword
-            placeholder="请输入关键词"
-            :remote-method="remoteMethod"
-            :loading="loading"
-            @change="selectChange">
-            <el-option
-              v-for="item in searchList"
-              :key="item.uid"
-              :label="item.address"
-              :value="JSON.stringify(item)">
-            </el-option>
-          </el-select>
-<!--      <el-button class="search-button" @click="getAddressByQuery">查询</el-button>-->
+        class="search-input"
+        v-model="queryString"
+        filterable
+        remote
+        reserve-keyword
+        placeholder="请输入关键词"
+        :remote-method="remoteMethod"
+        :loading="loading"
+        @change="selectChange">
+        <el-option
+          v-for="item in searchList"
+          :key="item.uid"
+          :label="item.address"
+          :value="JSON.stringify(item)">
+        </el-option>
+      </el-select>
+      <!--      <el-button class="search-button" @click="getAddressByQuery">查询</el-button>-->
     </div>
-    <search-map-box ref="OpenLayersMap" @getMapData="getMapData" :route-range="point"
-                    :is-detail="true"></search-map-box>
+    <!--    <search-map-box ref="OpenLayersMap" @getMapData="getMapData" :route-range="point" :is-detail="true"></search-map-box>-->
+    <dc-search-map ref="dcSearchMap" @getMapData="getMapData" :point="point"></dc-search-map>
   </div>
 </template>
 
@@ -29,27 +29,28 @@
 import SearchMapBox from "@/components/map/searchMapBox";
 import {getAoiByPt, search, searchByLonLat, searchByQuery} from "@/api/security/security";
 import data from "@/views/util/data";
+import DcSearchMap from "@/components/map/dcSearchMap";
 
 export default {
   name: "searchMap",
-  components: {SearchMapBox},
+  components: {DcSearchMap, SearchMapBox},
   props: ['pointLonLat'],
   data() {
     return {
-      ak:"ebf48ecaa1fd436fa3d40c4600aa051f",
-      region:"361100",
+      ak: "ebf48ecaa1fd436fa3d40c4600aa051f",
+      region: "361100",
       longitude: "",
       latitude: "",
       queryString: "",
       point: "",
-      searchList:[],
-      loading:false,
+      searchList: [],
+      loading: false,
     }
   },
-  watch:{
-    longitude:{
-      handler(newVal){
-        if (newVal){
+  watch: {
+    longitude: {
+      handler(newVal) {
+        if (newVal) {
           this.getAddressByLonLat()
         }
       }
@@ -58,13 +59,17 @@
   created() {
     this.point = this.pointLonLat
   },
+  mounted() {
+    this.$refs.dcSearchMap.init()
+  },
   methods: {
     getMapData(data) {
-      this.longitude = data[0][0]
-      this.latitude = data[0][1]
-      this.$emit("getLonLat", data[0])
+      this.longitude = data[0]
+      this.latitude = data[1]
+      this.$emit("getLonLat", data)
+      
     },
-    remoteMethod(data){
+    remoteMethod(data) {
       this.queryString = data
       this.getAddressByQuery()
     },
@@ -72,13 +77,12 @@
       let ak = this.ak
       let region = this.region
       let query = this.queryString
-      let ids = "61743e28bbf11700e9fc4ef03dd8bea9"
-      searchByQuery(ak,region,query,ids).then(res => {
+      searchByQuery(ak, region, query).then(res => {
         let dataList = res.data.result
         this.searchList = dataList
       })
     },
-    getAddressByLonLat(){
+    getAddressByLonLat() {
       let ak = this.ak
       let query = ""
       let region = this.region
@@ -86,17 +90,36 @@
       let page_size = "1"
       let page_num = "1"
       let infos = 1
-      let radius = 500
-      let location = this.longitude+" "+this.latitude
-      searchByLonLat(ak,query,region,region_type,page_size,page_num,infos,radius,location).then(res=>{
+      let radius = 100
+      let location = this.longitude + " " + this.latitude
+      searchByLonLat(ak, query, region, region_type, page_size, page_num, infos, radius, location).then(res => {
         let data = res.data.result[0]
-        this.queryString = data.address
-        this.$emit("getAddress",this.queryString)
+        if(data!=undefined){
+          this.queryString = data.address
+          this.$emit("getAddress", this.queryString)
+          let point = [data.location.lng,data.location.lat]
+          this.$emit("getLonLat", point)
+          //清空
+          this.searchList = []
+          //触发搜索
+          this.getAddressByQuery()
+        }else{
+          this.queryString = [];
+          //清空
+          this.searchList = []
+          this.$emit("getAddress", '')
+          this.$emit("getLonLat", ['',''])
+        }
+        
       })
     },
-    selectChange(data){
+    selectChange(data) {
       let selectData = JSON.parse(data)
-      this.$refs.OpenLayersMap.setView(selectData.location)
+
+      this.$emit("getLonLat", [selectData.location.lng, selectData.location.lat])
+      this.$emit("getAddress", selectData.address)
+
+      this.$refs.dcSearchMap.setView(selectData.location)
     }
   }
 }

--
Gitblit v1.9.3