派生自 wuyushui/SewerAndRainNetwork

zhangshuaibao
2021-03-17 7e98976e49b810265924568a03df37cbf15bcaa8
src/components/panel/ToolBoxPanel.vue
@@ -20,13 +20,13 @@
          >
            <el-button slot="reference" class="el-button" :class="active === index ? 'tools-panel-choose':''"
                       @click="changeChoose(index)">
              <img :src="item.iconSelecd" alt="" v-if="active === index"/>
              <img :src="item.iconSelecd" alt="" v-if="active === index && checked === true"/>
              <img :src="item.icon" alt="" v-else/>
              <span>{{ item.label }}</span>
            </el-button>
            <el-button v-for="(itemT,indexT) in item.items" :key="indexT" @click="choiceItem(itemT,indexT)"
                       v-show="item.index!=='2'">
              <img :src="itemT.iconChoose" :title="itemT.title" v-if="Selecd === indexT"/>
              <img :src="itemT.iconChoose" :title="itemT.title" v-if="Selecd === indexT && checked === true"/>
              <img :src="itemT.icon" :title="itemT.title" v-else/>
            </el-button>
            <div class="base-map-inner-panel" v-show="!isShow&&item.index==='2'">
@@ -92,6 +92,8 @@
  name: 'ToolBoxPanel',
  data () {
    return {
      checked: false,
      checkbuuton: -1,
      isShow: true,
      currentBaseMapCode: 'tianditu_img',
      basemapList: [],
@@ -242,6 +244,7 @@
      ],
      selectGroup: false,
      drawLayer: null,
      drawLayerArray: [],
      map: null,
      // L: window.L,
      active: -1,
@@ -287,6 +290,16 @@
      if (this.drawLayer == null) {
        this.drawLayer = this.L.layerGroup().addTo(this.map)
      }
      if (this.checkbuuton === index) {
        this.checked = !this.checked
      } else {
        if (this.checkbuuton === -1) {
          this.checked = !this.checked
        } else {
          this.checked = true
        }
      }
      this.checkbuuton = index
    },
    choiceItem (itemT, indexT) {
      this.Selecd = indexT
@@ -298,33 +311,34 @@
            iconAnchor: [13, 16],
            popupAnchor: [26, -32]
          })
          var drawLayerMarker = this.map.editTools.startMarker()
          drawLayerMarker.setIcon(myIcon)
          this.drawLayer.addLayer(drawLayerMarker)
          this.setLogic(drawLayerMarker)
          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)
@@ -365,9 +379,9 @@
          break
      }
    },
    setLogic (layer) {
      layer.on('dblclick', this.L.DomEvent.stop).on('dblclick', layer.toggleEdit)
      layer.setStyle({
    setLogic () {
      this.drawLayer.on('dblclick', this.L.DomEvent.stop).on('dblclick', this.drawLayer.toggleEdit)
      this.drawLayer.setStyle({
        color: 'red'
      })
    },