派生自 wuyushui/SewerAndRainNetwork

chenzeping
2021-03-17 e20d96c28a7e1a40a593a8011a2080ce80cd8bf0
src/components/panel/ToolBoxPanel.vue
@@ -1,13 +1,10 @@
<template>
  <div class="left-top-toolbox-panel">
    <div class="specific-tools">
      <el-button @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">
        <img src="@assets/images/map-pages/icon/toolbox/Selecd/tool.png" alt="">
        <a>工具</a>
      <el-button :class="selectGroup === true ?'active-button':''" class="el-button-choice"
                 @mouseover.enter.native="changeSelectMouse">
        <img src="@assets/images/map-pages/icon/toolbox/Selecd/tool.png" alt=""/>
        <span class="span-default">工具</span>
      </el-button>
      <transition name="animationChange">
        <el-row v-show="selectGroup" class="specific-tools-group">
@@ -40,7 +37,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 +239,9 @@
      ],
      selectGroup: false,
      drawLayer: null,
      drawLayerArray: [],
      map: null,
      L: window.L,
      // L: window.L,
      active: -1,
      Selecd: -1
    }
@@ -283,13 +281,12 @@
      })
    },
    changeChoose (index) {
      this.active = index
      if (this.drawLayer == null) {
        this.drawLayer = this.L.layerGroup().addTo(this.map)
      if (this.active === index) {
        console.log('取消当前选中状态')
      }
      this.active = index
    },
    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,18 +364,18 @@
          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 () {
      this.selectGroup = !this.selectGroup
      this.selectGroup = false
      this.isShow = !this.isShow
    },
    changeSelectMouse () {
      this.selectGroup = true
    }
  }
}
@@ -408,8 +406,9 @@
      margin: 0 0.015rem;
      width: 45px;
      height: 45px;
      background: @background-color-tools;
      border: none;
      background: @background-color;
      //border: 1px solid @color-shadow;
      vertical-align: middle !important;
      .base-map-img {
        position: absolute;
@@ -424,16 +423,30 @@
        height: 22px;
      }
      span {
        display: block;
        font-size: 0.012rem;
        color: @color-tool;
      }
      a {
      .span-default {
        display: block;
        color: @color-shadow;
      }
      span {
        display: block;
        color: @color-over;
      }
    }
    .el-button-choice {
      z-index: 999;
      padding: 0;
      margin: 0 0.015rem;
      width: 45px;
      height: 45px;
      background: @background-color;
      border: 1px solid @color-shadow;
    }
    .active-button {
      border: 0.00521rem solid #fff700;
      box-shadow: 0 0 0.03rem #fff700;
    }
    .specific-tools-group {
@@ -459,7 +472,7 @@
          position: absolute;
          margin-left: 2px;
          background-color: rgba(0, 0, 0, .5);
          color: white;
          color: @color-over;
          .el-checkbox__label {
            padding-left: 5px !important;
@@ -498,14 +511,15 @@
        span {
          display: block;
          color: @color-shadow;
        }
      }
    }
    .special-button {
      width: 22.5px;
      height: 45px;
      color: @color-over;
      .special-button {
        width: 22px;
        height: 45px;
        color: @color-over;
      }
    }
  }
}