From b3d9e0d7a9479ba8e615a82e6f454fd2ebf62ac6 Mon Sep 17 00:00:00 2001
From: 陈泽平 <chenzeping>
Date: 星期六, 29 五月 2021 10:20:16 +0800
Subject: [PATCH] 企业应急-事件上报-搜索定位/经纬度定位修改

---
 src/components/base-page/enterprise-emergency/events-reported/ReportLocation.vue |  148 ++++++++++++++++++++++--------------------------
 1 files changed, 68 insertions(+), 80 deletions(-)

diff --git a/src/components/base-page/enterprise-emergency/events-reported/ReportLocation.vue b/src/components/base-page/enterprise-emergency/events-reported/ReportLocation.vue
index bfb60e1..084d73e 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocation.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocation.vue
@@ -1,42 +1,34 @@
 <template>
     <div class="report-location-box">
-        <div class="report-location">
-            <el-tabs v-model="activeName">
-                <el-tab-pane label="鐐瑰嚮瀹氫綅" name="first">
-                    <div class="click-location">
-                        <el-row>
-                            <el-input type="text" v-model="clickLocation" clearable @focus="focusLocation"></el-input>
-                        </el-row>
-                        <el-row>
-                            <el-button type="primary" @click="confirm">纭</el-button>
-                        </el-row>
+        <el-tabs v-model="activeName">
+            <el-tab-pane label="鎼滅储瀹氫綅" name="first">
+                <ReportLocationSearch></ReportLocationSearch>
+            </el-tab-pane>
+            <el-tab-pane label="绠℃瀹氫綅" name="second">
+                <ReportLocationSection></ReportLocationSection>
+            </el-tab-pane>
+            <el-tab-pane label="缁忕含搴﹀畾浣�" name="third">
+                <el-row class="place-box">
+                    <div class="place-left">
+                        <el-form :model="LongLatPos" label-width="90px">
+                            <el-form-item label="缁忓害:">
+                                <el-input v-model="LongLatPos.longPos"></el-input>
+                            </el-form-item>
+                            <el-form-item label="绾害:">
+                                <el-input v-model="LongLatPos.latPos"></el-input>
+                            </el-form-item>
+                        </el-form>
                     </div>
-                </el-tab-pane>
-                <el-tab-pane label="绠℃瀹氫綅" name="second">
-                    <ReportLocationSection></ReportLocationSection>
-                </el-tab-pane>
-                <el-tab-pane label="缁忕含搴﹀畾浣�" name="third">
-                    <el-row class="place-box">
-                        <div class="place-left">
-                            <el-form :model="LongLatPos" label-width="90px">
-                                <el-form-item label="缁忓害:">
-                                    <el-input v-model="LongLatPos.longPos"></el-input>
-                                </el-form-item>
-                                <el-form-item label="绾害:">
-                                    <el-input v-model="LongLatPos.latPos"></el-input>
-                                </el-form-item>
-                            </el-form>
-                        </div>
-                        <div class="place-right">
-                            <el-button type="primary" @click="mapPoints">瀹氫綅</el-button>
-                        </div>
-                    </el-row>
-                    <div class="place-bottom" style="text-align: center;margin: 10px">
-                        <el-button type="primary" @click="confirm">纭</el-button>
+                    <div class="place-right">
+                        <el-button type="primary" size="small" @click="mapPoints">鐐瑰嚮瀹氫綅</el-button>
+                        <el-button type="primary" size="small" @click="dataPoints">鏁版嵁瀹氫綅</el-button>
                     </div>
-                </el-tab-pane>
-            </el-tabs>
-        </div>
+                </el-row>
+                <div class="place-bottom" style="text-align: center;margin: 5px">
+                    <el-button type="primary" @click="confirm">纭</el-button>
+                </div>
+            </el-tab-pane>
+        </el-tabs>
     </div>
 </template>
 
@@ -44,18 +36,22 @@
 // import eventBus from '../../../../eventBus'
 // 绠℃瀹氫綅缁勪欢
 import ReportLocationSection from './ReportLocationSection'
+import ReportLocationSearch from './ReportLocationSearch'
+
+import { pulseEffect } from '../../../../utils/utils'
+
+import iconUrl from '../../../../../public/assets/images/map/loc.png'
 
 export default {
   name: 'ReportLocation',
   components: {
+    ReportLocationSearch,
     ReportLocationSection
   },
   data () {
     return {
       // active tab鍒囨崲
       activeName: 'first',
-      // 鐐瑰嚮瀹氫綅缁戝畾鏁版嵁
-      clickLocation: '',
       // 缁忕含搴﹀畾浣�
       LongLatPos: {
         longPos: '',
@@ -63,39 +59,43 @@
       }
     }
   },
-  // mounted () {
-  //   // 鎺ユ敹瑙勫畾 姣忔閲嶆柊閫夋嫨瀹氫綅 閮芥寚瀹� 閫夋嫨绗竴涓紑濮�
-  //   eventBus.$on('tab-change', (obj) => {
-  //     this.activeName = obj
-  //   })
-  // },
   methods: {
-    // 鍦板浘涓婄偣鍑�
-    selectPipeLine () {
-      window.map.on('click', this.selectClick)
-      // window.mapManager.clickDialogSwitch = false
-    },
-    // 鍦板浘涓婄偣鍑诲洖璋�
-    selectClick (e) {
-      window.map.off('click', this.selectClick)
-      // const point = [e.latlng.lng, e.latlng.lat]
-      const pointX = e.latlng.lng
-      const pointY = e.latlng.lat
-      this.clickLocation = '\'' + pointX + '\'' + pointY + ''
-      this.mapPointResult(e)
-    },
-    mapPointResult (e) {
-      console.log(e)
-      this.LongLatPos.longPos = e.latlng.lng
-      this.LongLatPos.latPos = e.latlng.lat
-    },
-    // 鑾峰緱鐒︾偣 杩涜瀹氫綅
-    focusLocation () {
-      this.selectPipeLine()
-    },
-    // 缁忕含搴﹀畾浣�
+    // 鐐瑰嚮瀹氫綅
     mapPoints () {
-      this.selectPipeLine()
+      window.map.on('click', (e) => {
+        this.LongLatPos.longPos = parseFloat(e.latlng.lng).toFixed(6)
+        this.LongLatPos.latPos = parseFloat(e.latlng.lat).toFixed(6)
+        const as = [this.LongLatPos.latPos, this.LongLatPos.longPos]
+        // console.log(as)
+        window.map.setView(as, 17)
+        pulseEffect(as)
+        const marker = window.L.marker(as, {
+          icon: window.L.icon({
+            iconUrl: iconUrl,
+            iconSize: [30, 30],
+            iconAnchor: [15, 15]
+          })
+        })
+        window.map.addLayer(marker)
+        window.map.off('click')
+      })
+    },
+    // 閫氳繃鏁版嵁瀹氫綅
+    dataPoints () {
+      const as = [this.LongLatPos.latPos, this.LongLatPos.longPos]
+      // console.log(as)
+      window.map.setView(as, 17)
+      pulseEffect(as)
+      const marker = window.L.marker(as, {
+        icon: window.L.icon({
+          iconUrl: iconUrl,
+          iconSize: [30, 30],
+          iconAnchor: [15, 15]
+        })
+      })
+      window.map.addLayer(marker)
+      this.LongLatPos.latPos = ''
+      this.LongLatPos.longPos = ''
     },
     // 鐐瑰嚮纭鎸夐挳浜嬩欢
     confirm () {
@@ -115,19 +115,7 @@
         align-items: center;
         justify-content: space-around;
     }
-    .click-location {
-        margin: 0 auto;
-        text-align: center;
 
-        .el-input {
-            width: 80%;
-            margin: 15px auto;
-        }
-
-        .el-button {
-            margin: 15px auto;
-        }
-    }
     .place {
         text-align: center;
 

--
Gitblit v1.8.0