From bc783367ccbff3f1cea645781e3fcc26cb4a0972 Mon Sep 17 00:00:00 2001
From: 李红刚 <p-honggang.li@pcitc.com>
Date: 星期三, 17 三月 2021 14:43:25 +0800
Subject: [PATCH] 修改标绘绘制圆出现中心点BUG及同时清除多个图层

---
 src/components/panel/ToolBoxPanel.vue |   70 ++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 33 deletions(-)

diff --git a/src/components/panel/ToolBoxPanel.vue b/src/components/panel/ToolBoxPanel.vue
index 9f89a0c..fe2c8b9 100644
--- a/src/components/panel/ToolBoxPanel.vue
+++ b/src/components/panel/ToolBoxPanel.vue
@@ -1,11 +1,11 @@
 <template>
   <div class="left-top-toolbox-panel">
     <div class="specific-tools">
-      <el-button @click="changeSelect" v-show="selectGroup">
+      <el-button class="el-button-choice" @click="changeSelect" v-show="selectGroup">
         <img src="@assets/images/map-pages/icon/toolbox/tool.png" alt="">
         <span>宸ュ叿</span>
       </el-button>
-      <el-button @click="changeSelect" v-show="!selectGroup">
+      <el-button class="el-button-choice" @click="changeSelect" v-show="!selectGroup">
         <img src="@assets/images/map-pages/icon/toolbox/Selecd/tool.png" alt="">
         <a>宸ュ叿</a>
       </el-button>
@@ -40,7 +40,7 @@
             </div>
           </el-popover>
           <el-button @click="changeSelect" class="special-button">
-            <i :class="selectGroup === false ? 'el-icon-d-arrow-right':'el-icon-d-arrow-left'"></i>
+            <i class="el-icon-d-arrow-left"></i>
           </el-button>
         </el-row>
       </transition>
@@ -242,8 +242,9 @@
       ],
       selectGroup: false,
       drawLayer: null,
+      drawLayerArray: [],
       map: null,
-      L: window.L,
+      // L: window.L,
       active: -1,
       Selecd: -1
     }
@@ -284,12 +285,8 @@
     },
     changeChoose (index) {
       this.active = index
-      if (this.drawLayer == null) {
-        this.drawLayer = this.L.layerGroup().addTo(this.map)
-      }
     },
     choiceItem (itemT, indexT) {
-      // console.log(itemT.label)
       this.Selecd = indexT
       switch (itemT.label) {
         case '鐐规爣缁�':
@@ -299,33 +296,34 @@
             iconAnchor: [13, 16],
             popupAnchor: [26, -32]
           })
-          var drawLayer = this.map.editTools.startMarker()
-          drawLayer.setIcon(myIcon)
-          this.drawLayer.addLayer(drawLayer)
-          this.setLogic(drawLayer)
+          this.drawLayer = this.map.editTools.startMarker()
+          this.drawLayer.setIcon(myIcon)
+          this.drawLayerArray.push(this.drawLayer)
           break
         case '绾挎爣缁�':
-          var drawLayerLine = this.map.editTools.startPolyline()
-          this.drawLayer.addLayer(drawLayerLine)
-          this.setLogic(drawLayerLine)
+          this.drawLayer = this.map.editTools.startPolyline()
+          this.drawLayerArray.push(this.drawLayer)
+          this.setLogic()
           break
         case '澶氳竟褰�':
-          var drawLayerPolygonD = this.map.editTools.startPolygon()
-          this.drawLayer.addLayer(drawLayerPolygonD)
-          this.setLogic(drawLayerPolygonD)
+          this.drawLayer = this.map.editTools.startPolygon()
+          this.drawLayerArray.push(this.drawLayer)
+          this.setLogic()
           break
         case '鐭╁舰':
-          var drawLayerPolygonJ = this.map.editTools.startRectangle()
-          this.drawLayer.addLayer(drawLayerPolygonJ)
-          this.setLogic(drawLayerPolygonJ)
+          this.drawLayer = this.map.editTools.startRectangle()
+          this.drawLayerArray.push(this.drawLayer)
+          this.setLogic()
           break
         case '鍦嗗舰':
-          var drawLayerPolygonY = this.map.editTools.startCircle()
-          this.drawLayer.addLayer(drawLayerPolygonY)
-          this.setLogic(drawLayerPolygonY)
+          this.drawLayer = this.map.editTools.startCircle()
+          this.drawLayerArray.push(this.drawLayer)
+          this.setLogic()
           break
         case '鍒犻櫎':
-          this.drawLayer.clearLayers()
+          for (let i = 0; i < this.drawLayerArray.length; i++) {
+            this.map.removeLayer(this.drawLayerArray[i])
+          }
           break
         case '娓呴櫎':
           Measure.clearMeasure(this.map, this.L)
@@ -366,13 +364,10 @@
           break
       }
     },
-    setLogic (layer) {
-      layer.on('dblclick', this.L.DomEvent.stop).on('dblclick', layer.toggleEdit)
-      layer.setStyle({
-        color: 'red',
-        fillColor: '#ffffff',
-        fillOpacity: 0.1,
-        fill: true
+    setLogic () {
+      this.drawLayer.on('dblclick', this.L.DomEvent.stop).on('dblclick', this.drawLayer.toggleEdit)
+      this.drawLayer.setStyle({
+        color: 'red'
       })
     },
     changeSelect () {
@@ -426,7 +421,6 @@
 
       span {
         display: block;
-        font-size: 0.012rem;
         color: @color-tool;
       }
 
@@ -436,6 +430,16 @@
       }
     }
 
+    .el-button-choice {
+      z-index: 999;
+      padding: 0;
+      margin: 0 0.015rem;
+      width: 45px;
+      height: 45px;
+      background: @background-color-tools;
+      border: 1px solid @color-shadow;
+    }
+
     .specific-tools-group {
       z-index: 1;
       //.tools-panel-content {

--
Gitblit v1.8.0