From dc2421508ec5cc18dc5ff2b2df6b39aba59188c8 Mon Sep 17 00:00:00 2001
From: seatonwan9 <seatonwan9@163.com>
Date: 星期日, 30 五月 2021 20:24:25 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop

---
 src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue |  323 ++++++++++++++++++++++++++++++-----------------------
 1 files changed, 180 insertions(+), 143 deletions(-)

diff --git a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
index 599d02d..63fa1f4 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
@@ -1,53 +1,76 @@
 <template>
-    <div class="click-location">
-        <el-row>
-            <el-input type="text" v-model="clickLocation" @change="focusLocation">
-                <el-button slot="suffix" type="text" @click="focusLocation">
-                    <img src="../../../../../public/assets/images/map/emergency/search.png" alt="">
-                </el-button>
-            </el-input>
-        </el-row>
-        <!--        <el-scrollbar style="height:250.34px">-->
-        <el-row v-for="(item,index) in searchList.slice((currentPage-1)*pageSize,currentPage*pageSize)" :key="index"
-                style="display: flex;align-items: center;margin: 0.1343rem 15px;text-align: left"
-                class="environmental-risk-list">
-            <el-col :span="4">
-                <img src="../../../../../public/assets/images/map/marker-icon.png" alt="" class="state"
-                     style="background: none;margin: 0 15px">
-            </el-col>
-            <el-col :span="12">
-                <div class=search-list>
-                    <!--                        <h4 :class="activeNum===index?'hover':''" @click="handleLocation(index)">鍚嶇О锛�<h3 style="display: inline-block">{{ item.name }}</h3></h4>-->
-                    <h3 :class="activeNum===index?'hover':''" @click="handleLocation(index)">鍚嶇О锛歿{ item.name }}</h3>
-                    <p style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden">鍦板潃锛�<span>{{ item.address }}</span>
-                    <p>鐢佃瘽锛�<span>{{ item.phone }}</span></p>
-                </div>
-            </el-col>
-            <el-col :span="8" style="text-align: right">
-                <el-button type="primary" size="mini" icon="el-icon-position" @click="locationMapClick(item,index)">
-                    瀹氫綅
-                </el-button>
-            </el-col>
-        </el-row>
-        <!--        </el-scrollbar>-->
-        <!--        <el-card class="footer-page" >-->
-        <div v-if="total > 10">
-            <el-pagination
-                    small
-                    @current-change="handlePage"
-                    :page-size=pageSize
-                    :current-page.sync="currentPage"
-                    layout="prev, pager, next"
-                    :total=total
-                    class="warnPagination"
-            >
-            </el-pagination>
+  <div class="click-location">
+    <el-row>
+      <!--      clearable-->
+      <el-input type="text" v-model="clickLocation" @change="focusLocation">
+        <el-button slot="suffix" type="text" @click="focusLocation">
+          <img src="../../../../../public/assets/images/map/emergency/search.png" alt="">
+        </el-button>
+      </el-input>
+    </el-row>
+    <!--        <el-scrollbar style="height:250.34px">-->
+    <el-row v-for="(item,index) in searchList.slice((currentPage-1)*pageSize,currentPage*pageSize)" :key="index"
+            style="display: flex;align-items: center;margin: 0.1343rem 15px;text-align: left"
+            class="environmental-risk-list">
+<!--      <div v-if="item.resultType === 1">-->
+        <el-col :span="4">
+          <img src="../../../../../public/assets/images/map/marker-icon.png" alt="" class="state"
+               style="background: none;margin: 0 15px">
+        </el-col>
+        <el-col :span="12">
+          <div class=search-list>
+            <!--                        <h4 :class="activeNum===index?'hover':''" @click="handleLocation(index)">鍚嶇О锛�<h3 style="display: inline-block">{{ item.name }}</h3></h4>-->
+            <h3 style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden" :class="activeNum===index?'hover':''" @click="handleLocation(index)">鍚嶇О锛歿{ item.name }}</h3>
+            <p style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden">鍦板潃锛�<span>{{ item.address }}</span>
+            <p style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden">鐢佃瘽锛�<span>{{ item.phone }}</span></p>
+          </div>
+        </el-col>
+        <el-col :span="8" style="text-align: right">
+          <el-button type="primary" size="mini" icon="el-icon-position" @click="locationMapClick(item,index)">
+            瀹氫綅
+          </el-button>
+        </el-col>
+<!--      </div>-->
+    </el-row>
+    <el-row v-for="(item,index) in searchListStatistics.slice((currentPage-1)*pageSize,currentPage*pageSize)" :key="index"
+            style="display: flex;align-items: center;margin: 0.1343rem 15px;text-align: left"
+            class="environmental-risk-list">
+      <!--      <div v-if="item.resultType === 1">-->
+      <el-col :span="4">
+        <img src="../../../../../public/assets/images/map/marker-icon.png" alt="" class="state"
+             style="background: none;margin: 0 15px">
+      </el-col>
+      <el-col :span="12">
+        <div class=search-list>
+          <!--                        <h4 :class="activeNum===index?'hover':''" @click="handleLocation(index)">鍚嶇О锛�<h3 style="display: inline-block">{{ item.name }}</h3></h4>-->
+          <h3 :class="activeNum===index?'hover':''" @click="handleLocation(index)" >鍚嶇О锛歿{ item.name }}</h3>
+          <p style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden">鍦板潃锛�<span>{{ item.address }}</span>
+          <p>鐢佃瘽锛�<span>{{ item.phone }}</span></p>
         </div>
-        <!--        </el-card>-->
-        <el-row style="text-align: right">
-            <el-button type="primary" size="small" @click="confirm">纭</el-button>
-        </el-row>
+      </el-col>
+      <el-col :span="8" style="text-align: right">
+        <el-button type="primary" size="mini" icon="el-icon-position" @click="locationMapClick(item,index)">
+          瀹氫綅
+        </el-button>
+      </el-col>
+      <!--      </div>-->
+    </el-row>
+    <div v-if="total > 5">
+      <el-pagination
+          small
+          @current-change="handlePage"
+          :page-size=pageSize
+          :current-page.sync="currentPage"
+          layout="prev, pager, next"
+          :total=total
+          class="warnPagination"
+      >
+      </el-pagination>
     </div>
+    <el-row style="text-align: right">
+      <el-button type="primary" size="small" @click="confirm">纭</el-button>
+    </el-row>
+  </div>
 </template>
 
 <script>
@@ -62,15 +85,21 @@
   data () {
     return {
       activeNum: -1,
-      // 鐐瑰嚮瀹氫綅缁戝畾鏁版嵁
-      clickLocation: '',
-      searchList: [],
-      marker: null,
+      // 鍒嗛〉
       total: 0,
       // 鍒嗛〉 榛樿灞曠ず
       currentPage: 1,
       // 鍒嗛〉 姣忛〉澶氬皯鏁版嵁
-      pageSize: 3
+      pageSize: 3,
+      // 瀹氫綅鐐瑰睍绀�
+      marker: window.L.layerGroup().addTo(window.map),
+      layersGroupArrList: [],
+      // 鐐瑰嚮瀹氫綅缁戝畾鏁版嵁
+      clickLocation: '',
+      // 鎼滅储鏁版嵁灞曠ず鍒楄〃 1
+      searchList: [],
+      // 鎼滅储鏁版嵁灞曠ず鍒楄〃 2
+      searchListStatistics: []
     }
   },
   methods: {
@@ -83,14 +112,19 @@
     },
     // 鎼滅储瀹氫綅
     focusLocation () {
-      const getBoundsData = '' + window.map.getBounds()._southWest.lng + ',' + window.map.getBounds()._southWest.lat + ',' + window.map.getBounds()._northEast.lng + ',' + window.map.getBounds()._northEast.lat
+      // 姣忔杩涜鎼滅储 閮藉涔嬪墠鏁扮粍鍒楄〃杩涜缃┖
+      this.searchList = []
+      this.total = ''
+      this.searchListStatistics = []
+      // 鎼滅储鏁版嵁data鍙傛暟
+      const getBoundsData = '' + window.map.getBounds().getSouthWest().lng + ',' + window.map.getBounds().getSouthWest().lat + ',' + window.map.getBounds().getNorthEast().lng + ',' + window.map.getBounds().getNorthEast().lat
       const data = {
         postStr: {
           keyWord: this.clickLocation,
           level: window.map.getZoom(),
           mapBound: getBoundsData,
           queryType: 7,
-          count: 14,
+          count: 50,
           start: 0,
           queryTerminal: 10000
         },
@@ -99,28 +133,27 @@
       // $http.get('http://10.246.133.164//api/search?', data)
       reportLocationSearch(data).then(res => {
         console.log(res)
-        this.searchList = res.pois
-        this.total = res.pois.length
+        // 杩斿洖鏁版嵁绫诲瀷 1锛堟櫘閫歅OI锛�
+        if (res.resultType === 1) {
+          this.searchList = res.pois
+          this.total = res.pois.length
+        } else if (res.resultType === 2) {
+          // 杩斿洖鏁版嵁绫诲瀷 2锛堢粺璁�
+          this.searchListStatistics = res.statistics.priorityCitys
+          this.total = res.statistics.priorityCitys.length
+        }
       })
     },
     // 鐐瑰嚮瀹氫綅
     locationMapClick (val, index) {
       this.activeNum = index
-      // console.log(val)
       const ps = val.lonlat.trim().split(' ')
-      // const htmls = '<div><ul><li>' + val.name + '</li></ul></div>'
-      // var myIcon = window.L.divIcon({
-      //   html: htmls,
-      //   className: 'company-bindTooltip',
-      //   iconSize: 16
-      // })
       this.marker = window.L.marker([ps[1], ps[0]], {
         icon: window.L.icon({
           iconUrl: iconUrl,
-          iconSize: [25, 40],
-          iconAnchor: [15, 15]
+          iconSize: [26, 40],
+          iconAnchor: [13, 20]
         })
-        // icon: myIcon
       })
         .bindTooltip(val.name, {
           permanent: 'true',
@@ -130,15 +163,19 @@
           className: ''
         })
       window.map.addLayer(this.marker)
+      this.layersGroupArrList.push(this.marker)
       window.map.setView([ps[1], ps[0]], 17)
       pulseEffect([ps[1], ps[0]])
     },
     // 鐐瑰嚮纭鎸夐挳浜嬩欢
     confirm () {
       window.mapManager.clearHighlight()
-      window.map.removeLayer(this.marker)
+      for (let i = 0; i < this.layersGroupArrList.length; i++) {
+        window.map.removeLayer(this.layersGroupArrList[i])
+      }
       this.searchList = []
       this.clickLocation = ''
+      this.total = 0
       eventBus.$emit('location-setChange', true)
     }
   }
@@ -146,91 +183,91 @@
 </script>
 
 <style lang="less" scoped>
-    /*/deep/ .el-row {*/
-    /*    margin: 2px 0 !important;*/
-    /*    padding: 0;*/
-    /*    height: 10px;*/
-    /*    max-height: 10px;*/
-    /*}*/
-    .environmental-risk-list {
-        color: @color;
-        border-bottom: 1px solid rgba(0, 255, 246, 0.14);
+/*/deep/ .el-row {*/
+/*    margin: 2px 0 !important;*/
+/*    padding: 0;*/
+/*    height: 10px;*/
+/*    max-height: 10px;*/
+/*}*/
+.environmental-risk-list {
+  color: @color;
+  border-bottom: 1px solid rgba(0, 255, 246, 0.14);
 
-        h3 {
-            font-size: 0.1rem;
-        }
-    }
+  h3 {
+    font-size: 0.1rem;
+  }
+}
 
-    /*<!--.environmental-risk-list:hover {-->*/
-    /*<!--    color: @color-highlight;-->*/
-    /*<!--    background: @background-color;-->*/
-    /*<!--}-->*/
-    .search-list {
-        h3:hover {
-            color: @color-highlight;
-        }
-    }
+/*<!--.environmental-risk-list:hover {-->*/
+/*<!--    color: @color-highlight;-->*/
+/*<!--    background: @background-color;-->*/
+/*<!--}-->*/
+.search-list {
+  h3:hover {
+    color: @color-highlight;
+  }
+}
 
-    .hover {
-        color: @color-highlight;
-    }
+.hover {
+  color: @color-highlight;
+}
 
-    .click-location {
-        margin: 0 auto;
-        text-align: center;
+.click-location {
+  margin: 0 auto;
+  text-align: center;
 
-        .el-input {
-            width: 80%;
-            margin: 15px auto;
-        }
-    }
+  .el-input {
+    width: 80%;
+    margin: 15px auto;
+  }
+}
 
-    /deep/
-    .warnPagination {
-        .btn-quicknext, .btn-quickprev {
-            color: #e4e8f1 !important;
-            background-color: transparent;
-            // border: 1px solid #25AECD;
-            border-left: 1px solid #25AECD;
-            border-bottom: 1px solid #25AECD;
-            border-top: 1px solid #25AECD;
-            color: #e4e8f1;
-        }
+/deep/
+.warnPagination {
+  .btn-quicknext, .btn-quickprev {
+    color: #e4e8f1 !important;
+    background-color: transparent;
+    // border: 1px solid #25AECD;
+    border-left: 1px solid #25AECD;
+    border-bottom: 1px solid #25AECD;
+    border-top: 1px solid #25AECD;
+    color: #e4e8f1;
+  }
 
-        .el-pager li {
-            color: #e4e8f1;
-            background: transparent;
-            // border: 1px solid #25AECD;
-            border-left: 1px solid #25AECD;
-            border-bottom: 1px solid #25AECD;
-            border-top: 1px solid #25AECD;
-        }
+  .el-pager li {
+    color: #e4e8f1;
+    background: transparent;
+    // border: 1px solid #25AECD;
+    border-left: 1px solid #25AECD;
+    border-bottom: 1px solid #25AECD;
+    border-top: 1px solid #25AECD;
+  }
 
-        .el-pager li.active {
-            border-color: #25AECD;
-            background-color: rgba(38, 222, 253, 0.3);
-            color: #e4e8f1;
-        }
+  .el-pager li.active {
+    border-color: #25AECD;
+    background-color: rgba(38, 222, 253, 0.3);
+    color: #e4e8f1;
+  }
 
-        .el-pager li:hover {
-            border-color: #25AECD;
-            background-color: rgba(38, 222, 253, 0.3);
-            color: #34e0ff;
-        }
+  .el-pager li:hover {
+    border-color: #25AECD;
+    background-color: rgba(38, 222, 253, 0.3);
+    color: #34e0ff;
+  }
 
-        .btn-prev {
-            background-color: transparent;
-            // border: 1px solid #25AECD;
-            border-left: 1px solid #25AECD;
-            border-bottom: 1px solid #25AECD;
-            border-top: 1px solid #25AECD;
-            color: #e4e8f1;
-        }
+  .btn-prev {
+    background-color: transparent;
+    // border: 1px solid #25AECD;
+    border-left: 1px solid #25AECD;
+    border-bottom: 1px solid #25AECD;
+    border-top: 1px solid #25AECD;
+    color: #e4e8f1;
+  }
 
-        .btn-next {
-            background-color: transparent;
-            border: 1px solid #25AECD;
-            color: #e4e8f1;
-        }
-    }
+  .btn-next {
+    background-color: transparent;
+    border: 1px solid #25AECD;
+    color: #e4e8f1;
+  }
+}
 </style>

--
Gitblit v1.8.0