派生自 wuyushui/SewerAndRainNetwork

wangqi
2021-03-15 811fc5e4e89c9a5222e895587bfa1c2e9fcc08f4
Merge remote-tracking branch 'origin/master'
4个文件已删除
8个文件已添加
13个文件已修改
1053 ■■■■ 已修改文件
public/index.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/map/_map-variable.less 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/map/map-panel-style.less 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/biaohui.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/celiang1.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/circle.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/ditu.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/fullscreen.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/ju.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/legend.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/line.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/location.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/map.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/polygon.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/square.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/tool.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/map-pages/icon/toolbox/xiazai.png 补丁 | 查看 | 原始文档 | blame | 历史
src/components/helpers/ServiceLayerHelper.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/BaseNavMenuItem.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/RightSearchPanel.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/ToolBoxPanel.vue 380 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/topicSearch/SewersSearch.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/plugin/Editable.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/IndexStatistics.vue 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/Warn.vue 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/index.html
@@ -16,13 +16,10 @@
    <div id="app"></div>
    <!-- built files will be auto injected -->
    <script type="text/javascript">
        /* 这里我们利用了一个自执行函数 */
        (function(){
            change();
            function change(){
              console.log( document.documentElement.clientWidth*12/640 +'px')
                //html的 font-size 的大小尺寸
                //这里的html字体大小利用了一个简单的数学公式,当我们默认设置以屏幕320px位基准此时的字体大小为20px(320    20px),那么浏览器窗口大小改变的时候新的html的fontSize(clientWidth  新的值)就是clientWidth*20/320
                document.documentElement.style.fontSize = document.documentElement.clientWidth/12 +'px';
            }
            /* 监听窗口大小发生改变时*/
src/assets/css/map/_map-variable.less
@@ -1,9 +1,11 @@
@color:#00fff6;
@color-highlight:#fff700;
@color-gray:#C0C4CC;
@color-title:white;
@color-over:white;
@background-color:rgba(0,16,30,.8);
@background-color-light:rgba(40,50,100,.4);
@background-color-split:rgba(0,255,246,.14);
@color: #00fff6;
@color-highlight: #fff700;
@color-gray: #C0C4CC;
@color-title: white;
@color-over: white;
@color-tool:#C0C4CC;
@background-color: rgba(0, 16, 30, .8);
@background-color-light: rgba(40, 50, 100, .4);
@background-color-split: rgba(0, 255, 246, .14);
@background-color-tools: #1A4951;
@border-radius: .03rem;
src/assets/css/map/map-panel-style.less
@@ -1,120 +1,146 @@
@import "_map-variable";
.el-button--primary{
    color: @color;
    background-color: @background-color;
    border-color: @color;
.el-button--primary {
  color: @color;
  background-color: @background-color;
  border-color: @color;
}
.el-tabs{
  .el-tabs__item{
      padding: 0 10px;
      text-align: center;
      height: 20px;
      line-height: 20px;
.el-tabs {
  .el-tabs__item {
    padding: 0 10px;
    text-align: center;
    height: 20px;
    line-height: 20px;
      color: #00fff6;
      cursor: pointer;
      -ms-flex-negative: 0;
      flex-shrink: 0;
    color: @color;
    cursor: pointer;
    -ms-flex-negative: 0;
    flex-shrink: 0;
  }
}
.el-tabs__header{
.el-tabs__header {
  font-size: .08333rem;
  line-height: .10938rem;
  background: rgba(0,255,246,.14);
  background: rgba(0, 255, 246, .14);
  // background: rgba(0,255,246,.14);
}
.el-dialog{
.el-dialog {
  border: 0.00521rem solid @color;
  box-shadow: 0 0 0.03rem @color;
  background: rgba(0, 16, 30, 0.8);
  border-radius: 0.05208rem;
  .el-dialog__title{
  .el-dialog__title {
    padding: .03125rem .08333rem;
    color: @color;
    cursor: pointer;
    flex-shrink: 0;
  }
}
.select-down {
    border: none !important;
    background-color: @background-color ;
  border: none !important;
  background-color: @background-color;
   //.el-scrollbar{
   //
   //     background-color: @background-color !important;
   // }
   //  .el-scrollbar__view .el-select-dropdown__list{
   //     background-color: @background-color !important;
   // }
     .el-select-dropdown__item.hover{
        background-color: @background-color-light;
    }
     .el-select-dropdown__item {
        color: @color;
        //background-color: @background-color;
    }
   //  .el-select-dropdown{
   //     border: none !important;
   //     background-color: @background-color !important;
   // }
   // .el-select-dropdown__empty{
   //     color: @color;
   //     background-color: @background-color;
   // }
    .popper__arrow::after{
        border-bottom-color: @color ;
    }
}
  //.el-scrollbar{
  //
  //     background-color: @background-color !important;
  // }
  //  .el-scrollbar__view .el-select-dropdown__list{
  //     background-color: @background-color !important;
  // }
  .el-select-dropdown__item.hover {
    background-color: @background-color-light;
  }
.el-table{
  color: #00fff6;
}
.el-table th, .el-table tr{
  background: transparent;
}
.el-table thead {
  color: #ffffff;
  font-weight: 500;
}
.el-table, .el-table__expanded-cell {
  background-color: transparent;
}
.el-table thead.is-group th{
  background-color: transparent;
}
.map-input{
  input{
    border-radius: 0;
    background-color: @background-color-light ;
    border: solid 1px @color ;
  .el-select-dropdown__item {
    color: @color;
    //background-color: @background-color;
  }
  //  .el-select-dropdown{
  //     border: none !important;
  //     background-color: @background-color !important;
  // }
  // .el-select-dropdown__empty{
  //     color: @color;
  //     background-color: @background-color;
  // }
  .popper__arrow::after {
    border-bottom-color: @color;
  }
}
.map-tooltip.is-dark{
  font-size: .08333rem ;
  color: @color-highlight ;
  background: @background-color ;
.el-tabs {
  .el-tabs__item {
    height: 40px;
    line-height: 40px;
  }
}
.el-table th, .el-table tr {
  background-color: transparent;
}
.el-table {
  color: @color;
  background: transparent;
  thead {
    color: #ffffff;
    font-weight: 500;
  }
  thead.is-group th {
    background: transparent;
  }
  .el-table__expanded-cell {
    background: transparent;
  }
}
.map-input {
  input {
    border-radius: 0;
    background-color: @background-color-light;
    border: solid 1px @color;
  }
}
.map-tooltip.is-dark {
  font-size: .08333rem;
  color: @color-highlight;
  background: @background-color;
  border-radius: .03rem;
  padding: .05rem ;
  padding: .05rem;
}
.map-btn-unactive{
  color: @color ;
  border: .00521rem solid @color ;
  box-shadow: 0 0 .03rem @color ;
.map-btn-unactive {
  color: @color;
  border: .00521rem solid @color;
  box-shadow: 0 0 .03rem @color;
}
.map-btn-active{
  color: @color-highlight ;
  border: .00521rem solid @color-highlight ;
  box-shadow: 0 0 .03rem @color-highlight ;
.map-btn-active {
  color: @color-highlight;
  border: .00521rem solid @color-highlight;
  box-shadow: 0 0 .03rem @color-highlight;
}
.map-btn-background{
.map-btn-background {
  background: @background-color;
  //border: .00521rem solid @color;
  //box-shadow: 0 0 .03rem @color;
  //border-radius: .05208rem;
}
.map-background{
.map-background {
  //color: @color;
  border: .00521rem solid @color;
  box-shadow: 0 0 .03rem @color;
@@ -122,9 +148,38 @@
  //padding: .05rem !important;
  border-radius: .05208rem;
}
.map-under-line {
  height: 1px;
  background: @background-color-split;
  margin-block-start: 0;
  margin-block-end: 0;
}
.tools-panel-content {
  border: 1px solid @background-color-tools;
  background: @background-color-tools;
  padding: 0;
  //width: 90px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  .el-button {
    padding: 0;
    margin: 5px;
    width: 30px;
    height: 30px;
    background: @background-color-tools;
    vertical-align: middle !important;
    img {
      width: 16px;
      height: 16px;
    }
  }
}
.el-popper[x-placement^=bottom] .popper__arrow::after {
  border-bottom-color: @background-color-tools;
}
src/assets/images/map-pages/icon/toolbox/biaohui.png
src/assets/images/map-pages/icon/toolbox/celiang1.png
src/assets/images/map-pages/icon/toolbox/circle.png

src/assets/images/map-pages/icon/toolbox/ditu.png
src/assets/images/map-pages/icon/toolbox/fullscreen.png
Binary files differ
src/assets/images/map-pages/icon/toolbox/ju.png
src/assets/images/map-pages/icon/toolbox/legend.png
Binary files differ
src/assets/images/map-pages/icon/toolbox/line.png
src/assets/images/map-pages/icon/toolbox/location.png
Binary files differ
src/assets/images/map-pages/icon/toolbox/map.png
src/assets/images/map-pages/icon/toolbox/polygon.png

src/assets/images/map-pages/icon/toolbox/square.png
Binary files differ
src/assets/images/map-pages/icon/toolbox/tool.png
src/assets/images/map-pages/icon/toolbox/xiazai.png
src/components/helpers/ServiceLayerHelper.js
@@ -26,11 +26,11 @@
  getByLayerId (layerId) {
    for (var k in this.layerArray) {
      var layer = this.layerArray[k]
      var geojson = layer.toGeoJSON()
      var features = geojson.features
      for (var j = 0; j < features.length; j++) {
        var feature = features[j]
      var layerGroup = this.layerArray[k]
      var layers = layerGroup.getLayers()
      for (var m = 0; m < layers.length; m++) {
        var layer = layers[m]
        var feature = layer.feature
        if (feature.id === layerId) {
          return layer
        }
src/components/panel/BaseNavMenuItem.vue
@@ -6,12 +6,13 @@
          <template slot="title" v-if="item.icon">
            <img :src="item.icon" :title="item.label"/>
          </template>
          <template slot="title" v-else>{{item.label}}</template>
          <template slot="title" v-else>{{ item.label }}</template>
          <base-nav-menu-item v-for="child in item.items" :key="child.title" :menuList='[child]'></base-nav-menu-item>
        </el-submenu>
      </template>
      <template v-else>
        <el-menu-item :index="item.index" :key="index">
          <!--          <el-radio></el-radio>-->
          {{ item.label }}
        </el-menu-item>
      </template>
@@ -33,24 +34,26 @@
</script>
<style lang="less" scoped>
.el-menu--popup {
  min-width: 100px;
}
.base-nav-menu {
  height: 38px;
  line-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-around;
  justify-content: center;
  outline: none;
  border: none;
  //margin-left: 20px;
  padding: 0;
  .el-menu--popup {
    min-width: 100px;
  }
}
  .el-submenu {
    .el-submenu__title {
      border-radius: 50%;
      .el-icon-arrow-down {
        display: none;
      }
    }
.el-menu--horizontal {
  .el-menu--popup {
    min-width: 100px;
  }
}
</style>
src/components/panel/RightSearchPanel.vue
@@ -35,7 +35,15 @@
<!--        <div class="btn-shrink" v-else-if="!isCollapse"></div>-->
        <div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div>
      </div>
      <component :title="title" :is="gcComp"></component>
        <div :class="'search-container map-background'">
            <div class="el-message-box__content" style="padding:6px;font-size: 13px;">
                <div class="search-title">
                污雨水
                </div>
                <component :title="title" :is="gcComp"></component>
            </div>
        </div>
    </div>
  </div>
</template>
@@ -145,6 +153,17 @@
</script>
<style lang="less">
.search-title{
    color: rgb(255, 255, 255);
    font-size: 16px;
    margin: 5px;
}
.search-container {
    position: relative;
    width: 1.79167rem;
    height: 3.4375rem;
    overflow: hidden;
}
.module-wrap{
  width: 0.15rem;
  height: 0.15rem;
src/components/panel/ToolBoxPanel.vue
@@ -1,86 +1,115 @@
<template>
  <div class="lefttop-toolbox-panel">
    <div>
      <div class="init-choose" @click="changeSelect()">
        <img src="@/assets/images/map-pages/icon/toolbox/circle.png" alt=""/>
      </div>
      <el-menu class="el-menu"
               mode="horizontal"
               :collapse="isCollapse"
               unique-opened
               @open="handleOpen"
               @close="handleClose"
               @select="handleSelect"
               v-show='selectGroup'
      >
        <base-nav-menu-item :menuList='menuList'></base-nav-menu-item>
      </el-menu>
  <div class="left-top-toolbox-panel">
    <div class="specific-tools">
      <el-button @click="changeSelect">
        <!--        <i class="el-icon-s-tools"></i>-->
        <img src="@assets/images/map-pages/icon/toolbox/tool.png" alt="">
        <span>工具</span>
      </el-button>
      <el-row v-show="selectGroup" class="specific-tools-group">
        <el-popover
            placement="bottom"
            width=""
            trigger="click"
            :popper-class="'tools-panel-content'"
            v-for="(item,index) in menuList" :key="index"
        >
          <el-button slot="reference" class="tools-panel-choose">
            <img :src="item.icon" alt=""/>
            <span>{{ item.label }}</span>
          </el-button>
          <el-button v-for="(itemT,indexT) in item.items" :key="indexT">
            <!--            <i class="el-icon-s-tools"></i>-->
            <img :src="itemT.icon" alt=""/>
            <!--            <span>{{ itemT.label }}</span>-->
          </el-button>
        </el-popover>
      </el-row>
      <el-button @click="changeSelect" class="special-button">
        <i :class="selectGroup === false ? 'el-icon-d-arrow-right':'el-icon-d-arrow-left'"></i>
      </el-button>
    </div>
    <!--文字标注弹框-->
    <!--    <TextBounced v-show="this.bouncedText" @changeBounced="gitBounced"></TextBounced>-->
  </div>
</template>
<script>
// import legend from '@/assets/images/map-pages/icon/toolbox/legend.png'
import plot from '@assets/images/map-pages/icon/toolbox/biaohui.png'
import polygon from '@assets/images/map-pages/icon/toolbox/celiang1.png'
import location from '@assets/images/map-pages/icon/toolbox/ditu.png'
import fullscreen from '@assets/images/map-pages/icon/toolbox/xiazai.png'
// 标绘的可选择数据
import marker from '@assets/images/map-pages/icon/toolbox/map.png'
import line from '@assets/images/map-pages/icon/toolbox/line.png'
import polygonJ from '@assets/images/map-pages/icon/toolbox/polygon.png'
import polygonS from '@assets/images/map-pages/icon/toolbox/ju.png'
import polygonY from '@assets/images/map-pages/icon/toolbox/circle.png'
// import square from '@/assets/images/map-pages/icon/toolbox/square.png'
import circle from '@assets/images/map-pages/icon/toolbox/circle.png'
import location from '@assets/images/map-pages/icon/toolbox/location.png'
import polygon from '@assets/images/map-pages/icon/toolbox/polygon.png'
import fullscreen from '@assets/images/map-pages/icon/toolbox/fullscreen.png'
// 测量的方法
import '@/components/plugin/leaflet-measure-path/leaflet-measure-path.css'
import Measure from '@/components/plugin/MeaSure'
// import '@/components/plugin/leaflet-measure-path/leaflet-measure-path.css'
// import Measure from '@/components/plugin/MeaSure'
// 标注的方法
import MakeTation from '@components/plugin/MakeTation'
// import MakeTation from '@components/plugin/MakeTation'
// 封装的选择弹框
import BaseNavMenuItem from '@components/panel/BaseNavMenuItem'
// import BaseNavMenuItem from '@components/panel/BaseNavMenuItem'
export default {
  name: 'ToolBoxPanel',
  components: { BaseNavMenuItem },
  // components: { BaseNavMenuItem },
  data () {
    return {
      menuList: [
        {
          icon: circle,
          icon: plot,
          label: '标绘',
          index: '1',
          items: [
            {
              index: '1-1',
              label: '点标绘'
              label: '点标绘',
              icon: marker
            },
            {
              index: '1-2',
              label: '线标绘'
              label: '线标绘',
              icon: line
            },
            {
              index: '1-4',
              label: '多边形',
              icon: polygonJ
            },
            {
              index: '1-5',
              label: '矩形',
              icon: polygonS
            },
            {
              index: '1-3',
              label: '面标绘',
              items: [
                {
                  index: '1-3-1',
                  label: '圆形'
                },
                {
                  index: '1-3-2',
                  label: '多边形'
                },
                {
                  index: '1-3-3',
                  label: '矩形'
                }
              ]
              label: '圆形',
              icon: polygonY
            }
          ]
        },
        {
          icon: polygon,
          label: '测量',
          index: '3',
          items: [
            {
              index: '3-1',
              label: '距离'
            },
            {
              index: '3-2',
              label: '面积'
            }
          ]
        },
        {
          icon: location,
          label: '切换底图',
          label: '地图',
          index: '2',
          items: [
            {
@@ -116,29 +145,6 @@
          ]
        },
        {
          icon: polygon,
          label: '管网',
          index: '3',
          items: [
            {
              index: '3-1',
              label: '连通性分析'
            },
            {
              index: '3-2',
              label: '爆管分析'
            },
            {
              index: '3-3',
              label: '流向分析'
            },
            {
              index: '3-4',
              label: '横断面分析'
            }
          ]
        },
        {
          icon: fullscreen,
          label: '下载',
          index: '4',
@@ -162,151 +168,135 @@
      selectGroup: false,
      drawLayer: null,
      map: null,
      L: window.L,
      // 控制工具栏 文字标注 的弹框是否显示
      bouncedText: false
      L: window.L
    }
  },
  methods: {
    handleOpen () {
    },
    handleClose () {
    },
    handleSelect (index, indexPath) {
    },
    // handleSelect (index) {
    //   console.log(index)
    //   switch (index) {
    //     case '4-1':
    //       // this.map.toggleFullscreen()
    //       var printer = this.L.easyPrint({
    //         sizeModes: ['Current', 'A4Landscape', 'A4Portrait'],
    //         filename: 'map_image',
    //         exportOnly: true,
    //         hideControlContainer: true
    //       }).addTo(this.map)
    //       printer.printMap('CurrentSize', 'MyManualPrint')
    //       break
    //     case '4-2':
    //       var printerX = this.L.easyPrint({
    //         sizeModes: ['Current', 'A4Landscape', 'A4Portrait'],
    //         filename: 'map_image',
    //         exportOnly: true,
    //         hideControlContainer: true
    //       }).addTo(this.map)
    //       printerX.printMap('A4Landscape page', 'MyManualPrint')
    //       break
    //     case '4-3':
    //       var printerY = this.L.easyPrint({
    //         sizeModes: ['Current', 'A4Landscape', 'A4Portrait'],
    //         filename: 'map_image',
    //         exportOnly: true,
    //         hideControlContainer: true
    //       }).addTo(this.map)
    //       printerY.printMap('A4Portrait page', 'MyManualPrint')
    //       break
    //     case '1-2':
    //       this.drawLayer = this.map.editTools.startPolyline()
    //       this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
    //       Measure.startMeasureLen(this.map, this.L)
    //       break
    //     case '1-3-1':
    //       // alert('圆形')
    //       this.drawLayer = this.map.editTools.circleMarker()
    //       this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
    //       break
    //     case '1-3-2':
    //       this.drawLayer = this.map.editTools.startPolygon()
    //       this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
    //       break
    //     case '1-1':
    //       MakeTation.StartPointAnnotation(this.map, this.L)
    //       break
    //     case '图标标注':
    //       this.drawLayer = this.map.editTools.startIcon()
    //       this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
    //       break
    //     case '文字标注':
    //       this.bouncedText = true
    //       MakeTation.startMakeText(this.map, this.L)
    //       break
    //     case '距离测量':
    //       Measure.startMeasureLen(this.map, this.L)
    //       break
    //     case '面积测量':
    //       Measure.startMeasureArea(this.map, this.L)
    //       break
    //   }
    // },
    // 文字标注控制
    gitBounced (params) {
      this.bouncedText = params
    },
    // 左上功能控制
    changeSelect () {
      this.selectGroup = !this.selectGroup
    },
    handleSelects (command) {
      console.log(command)
      switch (command) {
        case '全屏':
          // this.map.toggleFullscreen()
          var printer = this.L.easyPrint({
            sizeModes: ['Current', 'A4Landscape', 'A4Portrait'],
            filename: 'map_image',
            exportOnly: true,
            hideControlContainer: true
          }).addTo(this.map)
          printer.printMap('CurrentSize', 'MyManualPrint')
          break
        case 'A4横向':
          var printerX = this.L.easyPrint({
            sizeModes: ['Current', 'A4Landscape', 'A4Portrait'],
            filename: 'map_image',
            exportOnly: true,
            hideControlContainer: true
          }).addTo(this.map)
          printerX.printMap('A4Landscape page', 'MyManualPrint')
          break
        case 'A4纵向':
          var printerY = this.L.easyPrint({
            sizeModes: ['Current', 'A4Landscape', 'A4Portrait'],
            filename: 'map_image',
            exportOnly: true,
            hideControlContainer: true
          }).addTo(this.map)
          printerY.printMap('A4Portrait page', 'MyManualPrint')
          break
        case '线标绘':
          this.drawLayer = this.map.editTools.startPolyline()
          this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
          Measure.startMeasureLen(this.map, this.L)
          break
        case '面标绘':
          this.drawLayer = this.map.editTools.startPolygon()
          this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
          break
        case '多边形':
          alert('多边形')
          break
        case '点标绘':
          MakeTation.StartPointAnnotation(this.map, this.L)
          break
        case '图标标注':
          this.drawLayer = this.map.editTools.startIcon()
          this.drawLayer.on('dblclick').on('dblclick', this.drawLayer.toggleEdit)
          break
        case '文字标注':
          this.bouncedText = true
          MakeTation.startMakeText(this.map, this.L)
          break
        case '距离测量':
          Measure.startMeasureLen(this.map, this.L)
          break
        case '面积测量':
          Measure.startMeasureArea(this.map, this.L)
          break
      }
    }
  }
}
</script>
<style lang="less">
.lefttop-toolbox-panel {
<style lang="less" scoped>
.left-top-toolbox-panel {
  position: absolute;
  left: 15px;
  left: 0;
  top: 15px;
  z-index: 999;
  div {
    width: 100%;
    height: 55px;
    line-height: 55px;
  .specific-tools {
    display: flex;
    align-items: center;
    justify-content: space-around;
    justify-content: space-evenly;
    .init-choose {
      background: @background-color;
      width: 35px;
      height: 35px;
      border-radius: 50%;
      border: 2px skyblue solid;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 999;
    .el-button {
      padding: 0;
      margin: 0 0.015rem;
      width: 45px;
      height: 45px;
      background: @background-color-tools;
      border: none;
      box-shadow: 0 0 0.03rem #00fff6;
      img {
        width: 22px;
        height: 22px;
      }
      span {
        display: block;
        font-size: 0.012rem;
        color: @color-tool;
      }
    }
    .el-menu {
      width: 80%;
      background: none;
      z-index: 1;
      border: none;
      background: #305B62;
      border-radius: 50px;
    .special-button {
      width: 22.5px;
      height: 45px;
      color: @color-over;
    }
    .tools-panel-choose {
      img {
        width: 16px;
        height: 16px;
      }
      span {
        display: block;
      }
    }
  }
  //.transition {
  //  @keyframes bounce-in {
  //    0% {
  //      transform: scale(0);
  //      opacity: 0.3;
  //    }
  //    100% {
  //      transform: scale(1);
  //      opacity: 1;
  //    }
  //  }
  //
  //  .fade-enter-active {
  //    transform-origin: left center;
  //    animation: bounce-in .2s;
  //  }
  //
  //  .fade-leave-active {
  //    transform-origin: left;
  //    animation: bounce-in .2s reverse;
  //  }
  //}
}
</style>
src/components/panel/topicSearch/SewersSearch.vue
@@ -1,8 +1,5 @@
<template>
 <div :class="'sewers-search map-background'">
    <div class="el-message-box__content" style="padding:6px;font-size: 13px;">
      <div class="box__content" v-if="gdVisible">
        <div>
        <div class="sewers-search" v-if="gdVisible">
          <div class="search-panel ">
            <el-form ref="form" :model="form" label-width="90px" class="search-form">
              <el-form-item label="设施类型:" size="mini" class="search-panel-item">
@@ -40,7 +37,6 @@
            </el-form>
          </div>
          <el-scrollbar style="height:100%">
          <el-card class="search-result" >
            <div class="B-TMD-table-list" v-for="(item,index) in list" :key="index">
              <div class="B-TMD-table-list-title">
                <div class="B-TMD-table-list-head">
@@ -82,7 +78,6 @@
              <!--                  货物名称:<span :title="item.materialName">{{ item.materialName }}</span></div>-->
              <!--              </div>-->
            </div>
          </el-card>
          </el-scrollbar>
          <el-card class="footer-page" v-if="total > 10">
            <el-pagination
@@ -97,16 +92,12 @@
            </el-pagination>
          </el-card>
        </div>
      </div>
      <!--        <div class="monitor2" v-if="hbVisible">-->
      <!--          <env-protect-search></env-protect-search>-->
      <!--        </div>-->
      <!--        <div class="monitor2" v-if="pkVisible">-->
      <!--          <discharge-search></discharge-search>-->
      <!--        </div>-->
    </div>
  </div>
</template>
<script>
@@ -159,7 +150,7 @@
        }
      })
    },
    handleSearch () {
    async handleSearch () {
      const param = {
        pipelineType: this.form.pipelineType,
        dataType: this.form.dataType
@@ -169,17 +160,15 @@
      wfsHelper.addTypeName(this.form.query.layerName)
      wfsHelper.addLike(this.form.query.key, this.form.keyword)
      // const _this = this
      AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {}, (res) => {
        console.log(res)
        this.list = res.features
      })
      const res = await AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {})
      if (res.data instanceof Object && Object.prototype.hasOwnProperty.call(res.data, 'features')) {
        this.list = res.data.features
      }
    },
    handleLocation (val) {
      console.log(val)
      const bound = this.L.geoJSON([val], {}).getBounds()
      console.log(bound)
      var layer = window.serviceLayerHelper.getByLayerId(val.id)
      console.log(layer)
      layer && layer.openPopup()
      this.$store.state.map.map.flyToBounds(bound)
    }
@@ -188,10 +177,9 @@
</script>
<style lang="less" scoped>
.sewers-search{
  position: relative;
  width: 1.79167rem;
  height: 3.4375rem;
  overflow: hidden;
  .search-panel{
   background-color: transparent;
@@ -218,7 +206,6 @@
  //location-btn{
  //
  //}
  .location-btn:hover,.el-input__icon:hover{
    color: @color;
    cursor: pointer;
src/components/plugin/Editable.js
@@ -301,6 +301,7 @@
      // 🍂method startPolyline(latlng: L.LatLng, options: hash): L.Polyline
      // Start drawing a Polyline. If `latlng` is given, a first point will be added. In any case, continuing on user click.
      // If `options` is given, it will be passed to the Polyline class constructor.
      // 画线
      startPolyline: function (latlng, options) {
        const line = this.createPolyline([], options)
        line.enableEdit(this.map).newShape(latlng)
@@ -316,6 +317,12 @@
        return polygon
      },
      // circleMarker :function (latlng,options) {
      //   const yuan = this.circleMarker(latlng,options)
      //   yuan.enableEdit(this.map).newShape(latlng)
      //   return yuan
      // }
      // 🍂method startMarker(latlng: L.LatLng, options: hash): L.Marker
      // Start adding a Marker. If `latlng` is given, the Marker will be shown first at this point.
      // In any case, it will follow the user mouse, and will have a final `latlng` on next click (or touch).
src/components/table/components/IndexStatistics.vue
@@ -1,103 +1,85 @@
<template>
    <el-tabs v-model="activeName">
        <el-tab-pane label="指标统计" name="first"><el-table
                :data="tableData"
                style="width: 100%">
                :data="tableData">
            <el-table-column
                    prop="date"
                    label="序号"
                    width="150">
                    type="index"
                    label="序号">
            </el-table-column>
            <el-table-column
                    prop="date"
                    label="单位名称"
                    width="150">
                    label="单位名称">
            </el-table-column>
            <el-table-column
                    prop="date"
                    label="工业取水量(m3)"
                    width="150">
                    prop="province"
                    label="工业取水量(m3)">
            </el-table-column>
            <el-table-column
                    prop="date"
                    label="外排废水量(m3)"
                    width="150">
                    prop="province"
                    label="外排废水量(m3)">
            </el-table-column>
            <el-table-column
                    prop="date"
                    label="工业废气排放量(m3)"
                    width="150">
                    prop="province"
                    label="工业废气排放量(m3)">
            </el-table-column>
            <el-table-column label="COD(t)">
                    <el-table-column
                            prop="province"
                            label="累计产生量"
                            width="120">
                            label="累计产生量">
                    </el-table-column>
                    <el-table-column
                            prop="city"
                            label="当月产生量"
                            width="120">
                            label="当月产生量">
                    </el-table-column>
            </el-table-column>
            <el-table-column label="氨氮(t)">
                <el-table-column
                        prop="province"
                        label="累计产生量"
                        width="120">
                        label="累计产生量">
                </el-table-column>
                <el-table-column
                        prop="city"
                        label="当月产生量"
                        width="120">
                        label="当月产生量">
                </el-table-column>
            </el-table-column>
            <el-table-column label="二氧化硫(t)">
                <el-table-column
                        prop="province"
                        label="累计产生量"
                        width="120">
                        label="累计产生量">
                </el-table-column>
                <el-table-column
                        prop="city"
                        label="当月产生量"
                        width="120">
                        label="当月产生量">
                </el-table-column>
            </el-table-column>
            <el-table-column label="氮氧化物(t)">
                <el-table-column
                        prop="province"
                        label="累计产生量"
                        width="120">
                        label="累计产生量">
                </el-table-column>
                <el-table-column
                        prop="city"
                        label="当月产生量"
                        width="120">
                        label="当月产生量">
                </el-table-column>
            </el-table-column>
            <el-table-column label="VOCs(t)">
                <el-table-column
                        prop="province"
                        label="累计产生量"
                        width="120">
                        label="累计产生量">
                </el-table-column>
                <el-table-column
                        prop="city"
                        label="当月产生量"
                        width="120">
                        label="当月产生量">
                </el-table-column>
            </el-table-column>
            <el-table-column label="固废(t)">
                <el-table-column
                        prop="province"
                        label="累计产生量"
                        width="120">
                        label="累计产生量">
                </el-table-column>
                <el-table-column
                        prop="city"
                        label="当月产生量"
                        width="120">
                        label="当月产生量">
                </el-table-column>
            </el-table-column>
        </el-table></el-tab-pane>
@@ -106,96 +88,83 @@
                style="width: 100%"
                max-height="250">
            <el-table-column
                    fixed
                    type="index"
                    label="序号">
            </el-table-column>
            <el-table-column
                    prop="date"
                    label="企业名称"
                    width="150">
                    label="企业名称">
            </el-table-column>
            <el-table-column
                    prop="name"
                    label="废水达标率"
                    width="120">
                    label="废水达标率">
            </el-table-column>
            <el-table-column
                    prop="province"
                    label="名次"
                    width="120">
                    label="名次">
            </el-table-column>
            <el-table-column
                    prop="city"
                    label="废气达标率"
                    width="120">
                    label="废气达标率">
            </el-table-column>
            <el-table-column
                    prop="address"
                    label="名次"
                    width="300">
                    label="名次">
            </el-table-column>
            <el-table-column
                    prop="zip"
                    label="传输率"
                    width="120">
                    label="传输率">
            </el-table-column>
            <el-table-column
                    prop="zip"
                    label="名次"
                    width="120">
                    label="名次">
            </el-table-column>
            <el-table-column
                    prop="zip"
                    label="设备完好率"
                    width="120">
                    label="设备完好率">
            </el-table-column>
            <el-table-column
                    prop="zip"
                    label="排名"
                    width="120">
                    label="排名">
            </el-table-column>
        </el-table></el-tab-pane>
        <el-tab-pane label="排放点排名" name="third"><el-table
                :data="tableData"
                style="width: 100%"
                max-height="250">
                :data="tableData">
            <el-table-column
                    fixed
                    type="index"
                    label="序号">
            </el-table-column>
            <el-table-column
                    prop="date"
                    label="排放点名称"
                    width="150">
                    label="排放点名称">
            </el-table-column>
            <el-table-column
                    prop="name"
                    label="排放类型"
                    width="120">
                    label="排放类型">
            </el-table-column>
            <el-table-column
                    prop="province"
                    label="达标率"
                    width="120">
                    label="达标率">
            </el-table-column>
            <el-table-column
                    prop="city"
                    label="名次"
                    width="120">
                    label="名次">
            </el-table-column>
            <el-table-column
                    prop="address"
                    label="传输率"
                    width="300">
                    label="传输率">
            </el-table-column>
            <el-table-column
                    prop="zip"
                    label="名次"
                    width="120">
                    label="名次">
            </el-table-column>
            <el-table-column
                    prop="zip"
                    label="设备完好率"
                    width="120">
                    label="设备完好率">
            </el-table-column>
            <el-table-column
                    prop="zip"
                    label="名次"
                    width="120">
                    label="名次">
            </el-table-column>
        </el-table></el-tab-pane>
    </el-tabs>
@@ -208,53 +177,25 @@
    return {
      activeName: 'first',
      tableData: [{
        date: '2016-05-03',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        date: '集团公司',
        name: '35',
        province: '23',
        city: '11',
        address: 235,
        zip: 23
      }, {
        date: '天津石化',
        name: 32,
        province: 33,
        city: 44,
        address: 53,
        zip: 200333
      }, {
        date: '2016-05-02',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
      }, {
        date: '2016-05-04',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
      }, {
        date: '2016-05-01',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
      }, {
        date: '2016-05-08',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
      }, {
        date: '2016-05-06',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
      }, {
        date: '2016-05-07',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        date: '济南炼化',
        name: 35,
        province: 13,
        city: 33,
        address: 44,
        zip: 200333
      }]
    }
src/components/table/components/Warn.vue
@@ -1,169 +1,144 @@
<template>
    <el-tabs v-model="activeName">
        <el-tab-pane label="实时统计" name="first">
            <el-scrollbar style="width:100%">
            <el-table
                    :data="tableData"
                    style="width: 100%">
                    :data="tableData">
                <el-table-column
                        prop="date"
                        label="企业名称"
                        width="150">
                        label="企业名称">
                </el-table-column>
                <el-table-column label="废水(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                    <el-table-column
                            prop="name"
                            label="报警"
                            width="120">
                            label="报警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="废气(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                    <el-table-column
                            prop="name"
                            label="报警"
                            width="120">
                            label="报警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="固废(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="硫化氢(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="可燃气体(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                </el-table-column>
            </el-table>
            </el-scrollbar>
        </el-tab-pane>
        <el-tab-pane label="当月统计" name="second">
            <el-table
                    :data="tableData"
                    style="width: 100%">
                    :data="tableData">
                <el-table-column
                        prop="date"
                        label="企业名称"
                        width="150">
                        label="企业名称">
                </el-table-column>
                <el-table-column label="废水(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                    <el-table-column
                            prop="name"
                            label="报警"
                            width="120">
                            label="报警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="废气(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                    <el-table-column
                            prop="name"
                            label="报警"
                            width="120">
                            label="报警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="固废(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="硫化氢(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="可燃气体(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                </el-table-column>
            </el-table>
        </el-tab-pane>
        <el-tab-pane label="上月统计" name="third">
            <el-table
                    :data="tableData"
                    style="width: 100%">
                    :data="tableData">
                <el-table-column
                        prop="date"
                        label="企业名称"
                        width="150">
                        label="企业名称">
                </el-table-column>
                <el-table-column label="废水(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                    <el-table-column
                            prop="name"
                            label="报警"
                            width="120">
                            label="报警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="废气(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                    <el-table-column
                            prop="name"
                            label="报警"
                            width="120">
                            label="报警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="固废(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="硫化氢(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                </el-table-column>
                <el-table-column label="可燃气体(个)">
                    <el-table-column
                            prop="name"
                            label="预警"
                            width="120">
                            label="预警">
                    </el-table-column>
                </el-table-column>
            </el-table>
@@ -177,54 +152,33 @@
    return {
      activeName: 'first',
      tableData: [{
        date: '2016-05-03',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
        date: '集团公司',
        name: 1,
        province: 1,
        city: 0,
        address: 1,
        zip: 0
      }, {
        date: '2016-05-02',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
        date: '天津石化',
        name: 1,
        province: 0,
        city: 1,
        address: 1,
        zip: 2
      }, {
        date: '2016-05-04',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
        date: 'XXX炼化',
        name: 1,
        province: 2,
        city: 0,
        address: 0,
        zip: 1
      }, {
        date: '2016-05-01',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
      }, {
        date: '2016-05-08',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
      }, {
        date: '2016-05-06',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
      }, {
        date: '2016-05-07',
        name: '王小虎',
        province: '上海',
        city: '普陀区',
        address: '上海市普陀区金沙江路 1518 弄',
        zip: 200333
        date: 'XXX炼化2',
        name: 1,
        province: 2,
        city: 0,
        address: 0,
        zip: 1
      }]
    }
  }