派生自 wuyushui/SewerAndRainNetwork

陈泽平
2021-05-21 1f619887452d6c0faaf4c509b9e1725a02db990c
src/components/panel/ToolBoxPanel.vue
@@ -2,29 +2,25 @@
  <div class="left-top-toolbox-panel">
    <div class="specific-tools">
      <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="工具" placement="left">
        <el-button :class="selectGroup === true ?'active-button':''" class="el-button-choice"   @click.enter.native="changeSelectMouse">
        <div :class='["iconBtn",selectGroup === true  ? "active-button" : ""]' @click="changeSelectMouse">
          <i class="icon iconfont icongongju"></i>
          <!--<span class="span-default">工具</span>-->
        </el-button>
        </div>
      </el-tooltip>
      <transition name="animationChange">
        <el-row v-show="selectGroup" class="specific-tools-group">
        <div v-show="selectGroup" class="specific-tools-group">
          <el-popover
              trigger="manual"
              placement="bottom"
              :popper-class="'tools-panel-content'"
              v-for="(item,index) in menuList" :key="index"
              :width="item.index === '2'?230 : 150"
              v-model="isShow[index]"
          >
            <el-button slot="reference" class="el-button" :class="active === index? 'tools-panel-choose':''" @click.native="changeChoose(index)">
              <!-- <img :src="item.iconSelecd" alt="" v-if="active === index"/>
              <img :src="item.icon" alt="" v-else/> -->
              v-model="isShow[index]">
            <el-button slot="reference" class="el-button" :class="active === index? 'tools-panel-choose':''"
                       @click.native="changeChoose(index)">
              <i :class="'icon iconfont '+item.icon"></i>
            </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 && checkedItem" alt=""/>
              <img :src="itemT.icon" :title="itemT.title" alt="" v-else/> -->
            <el-button v-for="(itemT,indexT) in item.items" :key="indexT" @click="choiceItem(itemT,indexT)"
                       v-show="item.index!=='2'" :class="indexT==toolActive?'hover':''">
              <i :class="'icon iconfont '+itemT.icon"></i>
            </el-button>
            <lc-base-map v-show="item.index==='2'"></lc-base-map>
@@ -32,7 +28,7 @@
          <!-- <el-button @click="changeSelect" class="special-button">
            <i class="el-icon-d-arrow-left"></i>
          </el-button> -->
        </el-row>
        </div>
      </transition>
    </div>
  </div>
@@ -107,6 +103,7 @@
      checkedItem: false,
      Selecd: -1,
      isSelecd: -1,
      toolActive: -1,
      menuList: [
        {
          icon: 'iconjuliceliang', // plot,
@@ -119,6 +116,7 @@
              label: '点标绘',
              icon: 'iconlocation-full', // marker,
              title: '点标绘',
              active: false,
              iconChoose: markerChoose
            },
            {
@@ -126,6 +124,7 @@
              label: '线标绘',
              icon: 'iconline', // line,
              title: '线标绘',
              active: 0,
              iconChoose: lineChoose
            },
            {
@@ -133,6 +132,7 @@
              label: '多边形',
              icon: 'iconliubianxing1', // polygonJ,
              title: '多边形',
              active: 0,
              iconChoose: polygonJChoose
            },
            {
@@ -140,6 +140,7 @@
              label: '矩形',
              icon: 'iconcheckbox-full', // polygonS,
              title: '矩形',
              active: 0,
              iconChoose: polygonSChoose
            },
            {
@@ -147,11 +148,13 @@
              label: '圆形',
              icon: 'iconyuan', // polygonY,
              title: '圆形',
              active: 0,
              iconChoose: polygonYChoose
            },
            {
              index: '1-4',
              label: '删除',
              active: -1,
              icon: 'icondelete-fill', // del,
              title: '删除标绘',
              iconChoose: delChoose
@@ -169,6 +172,7 @@
              label: '距离',
              icon: 'iconjuliceliang', // distance,
              title: '距离测量',
              active: 0,
              iconChoose: distanceChoose
            },
            {
@@ -176,6 +180,7 @@
              label: '面积',
              icon: 'iconmianjiceliang', // mm,
              title: '面积测量',
              active: 0,
              iconChoose: mmChoose
            },
            {
@@ -183,6 +188,7 @@
              label: '清除',
              icon: 'icondelete-fill', // del,
              title: '清除测量',
              active: -1,
              iconChoose: delChoose
            }
          ]
@@ -196,6 +202,7 @@
            {
              label: '影像图',
              index: '2-1',
              active: 0,
              items: [
                {
                  index: '2-1-1',
@@ -206,6 +213,7 @@
            {
              label: '矢量图',
              index: '2-2',
              active: 0,
              items: [
                {
                  index: '2-2-1',
@@ -216,6 +224,7 @@
            {
              label: '地形图',
              index: '2-3',
              active: 0,
              items: [
                {
                  index: '2-3-1',
@@ -235,18 +244,21 @@
              index: '4-1',
              label: '全屏',
              icon: 'icontianchongxing-', // FullScreen,
              active: 0,
              title: '全屏'
            },
            {
              index: '4-2',
              label: 'A4横向',
              icon: 'iconsaoma', // cross,
              active: 0,
              title: 'A4横向'
            },
            {
              index: '4-3',
              label: 'A4纵向',
              icon: 'iconsaoma zongs', // vertical,
              active: 0,
              title: 'A4纵向'
            }
          ]
@@ -275,6 +287,7 @@
        this.drawLayer = this.L.layerGroup().addTo(this.map)
      }
      this.active = index
      this.toolActive = -1
      // console.log(this.basemapList)
      for (let i = 0; i < this.isShow.length; i++) {
        if (i !== index) {
@@ -287,6 +300,11 @@
    },
    choiceItem (itemT, indexT) {
      this.Selecd = indexT
      if (itemT.active !== -1) {
        this.toolActive = indexT
      } else {
        this.toolActive = -1
      }
      if (this.isSelecd === indexT) {
        this.checkedItem = !this.checkedItem
      } else {
@@ -405,14 +423,15 @@
<style lang="less" scoped>
  .tools-panel-content .el-button .zongs{
    transform:rotate(90deg);
    -ms-transform:rotate(90deg);
    -moz-transform:rotate(90deg);
    -webkit-transform:rotate(90deg);
    -o-transform:rotate(90deg);
    display: block;
  }
.tools-panel-content .el-button .zongs {
  transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  display: block;
}
.animationChange-enter-active, .animationChange-leave-active {
  transition: all 0.5s;
}
@@ -431,15 +450,19 @@
  .specific-tools {
    display: flex;
    overflow: hidden;
     .el-button {
    .el-button {
      z-index: 999;
      padding: 0;
      margin: 0 0.015rem;
      width: 0.2725rem;
      height: 0.2725rem;
      color: #00fff6;
      background: @background-color;
      border: 0.00521rem solid #00fff6;
      vertical-align: middle !important;
       font-size: 20px;
      font-size: 20px;
      .base-map-img {
        position: absolute;
      }
@@ -447,21 +470,25 @@
      .base-map-img:hover {
        cursor: pointer;
      }
      img {
        width: 22px;
        height: 22px;
      }
      .span-default {
        display: block;
        font-size: 10px;
      }
      span {
        display: block;
        font-size: 10px;
      }
    }
    .specific-tools-group .el-button{
      span{
    .specific-tools-group .el-button {
      span {
        color: #0B89B5;
      }
    }
@@ -471,7 +498,7 @@
      z-index: 999;
      padding: 0;
      margin: 0;
      margin-right:0.015rem;
      margin-right: 0.015rem;
      width: 0.2725rem;
      height: 0.2725rem;
      background: @background-color;
@@ -487,8 +514,9 @@
      z-index: 1;
      .tools-panel-choose {
        border: none;
        box-shadow: 0 0 0.03rem @color-shadow;
        border: 0.00521rem solid #fff700;
        box-shadow: 0 0 0.03rem #fff700;
        color: #fff700;
        img {
          width: 22px;
@@ -509,16 +537,18 @@
      .special-button {
        width: 0.1362rem;
        height: 0.2725rem;
        background:@background-color4;
        color:@color-tool;
        border:1px solid @color-tool;
        background: @background-color4;
        color: @color-tool;
        border: 1px solid @color-tool;
      }
      .special-button:hover{
      .special-button:hover {
        color: #00fff6;
      }
    }
  }
}
.base-map-inner-panel {
  display: flex;
  justify-content: center;