派生自 wuyushui/SewerAndRainNetwork

yangdelong
2021-04-07 c6d73ab9748dcafb3977f3e7acfaf4257b270408
Merge remote-tracking branch 'origin/develop' into develop
22个文件已修改
419 ■■■■ 已修改文件
public/assets/images/map/solidwaste/gf_green.png 补丁 | 查看 | 原始文档 | blame | 历史
src/api/mapApi.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/mapUrl.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicDetailedList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/PublicBounced.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/LayerController.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/logic/SolidWaste.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/logic/WasteWater.js 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/modules/LcServiceLayer.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/modules/LcServiceLayerFilter.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/service/WfsLayerService.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/LegendPanel.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/RightSearchPanel.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/ToolBoxPanel.vue 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/enterprise.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/summarySheets.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/layers/LayerPipeLines.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/layers/LayerSewers.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/assets/images/map/solidwaste/gf_green.png

src/api/mapApi.js
@@ -36,9 +36,18 @@
  getWasteGasDetails (data) {
    return axios.get(mapUrl.getWasteGasDetails, data)
  },
  // 废水点
  getWasteWater (data) {
    return axios.get(mapUrl.getWasteWater, data)
  },
  // 废水监测数据
  getWasteWaterMonitoring (data) {
    return axios.get(mapUrl.getWasteWaterMonitoring, data)
  },
  // 废水点明细表
  getWasteWaterMonitoringDetails (data) {
    return axios.get(mapUrl.getWasteWaterMonitoringDetails, data)
  },
  getCompany (data) {
    return axios.get(mapUrl.getCompany, data)
  }
src/api/mapUrl.js
@@ -14,5 +14,7 @@
export const getWasteGasDetails = $HOST + '/wasteGas/getWasteGasMonitoringDetails'
export const getWasteWater = $HOST + '/wasteWater/getWasteWater'
export const getWasteWaterMonitoring = $HOST + '/wasteWater/getWasteWaterMonitoring'
export const getWasteWaterMonitoringDetails = $HOST + '/wasteWater/getWasteWaterMonitoringDetails'
export const getCompany = $HOST + '/company/getCompany'
src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue
@@ -11,10 +11,12 @@
          <el-button size="mini" round @click="dialogVisible = true">明细表</el-button>
          <el-dialog  :visible.sync="dialogVisible"
                      :append-to-body="true"
                      width="66%"
                      :title="this.$attrs.getWasteGasDetails[0].OnLineMonEmissPointName"
                      width="68%"
                      center
                      v-dialogDrag
                      >
            <div class="el-dialog-div" style="height: 600px">
            <div class="el-dialog-div" style="height: 500px">
              <public-detailed-list v-bind="$attrs"></public-detailed-list>
            </div>
          </el-dialog>
@@ -34,6 +36,7 @@
  },
  data () {
    return {
      watchData: [],
      dialogVisible: false
    }
  },
@@ -201,6 +204,8 @@
  },
  mounted () {
    this.drawChart()
    const dataWatch = JSON.parse(JSON.stringify(this.$attrs))
    console.log(dataWatch)
  }
}
</script>
src/components/BaseNav/PublicBounced/GasComponents/PublicDetailedList.vue
@@ -1,6 +1,6 @@
<template>
  <div class="PublicDetailedList">
    <el-table :data="tableData" max-height="600px">
    <el-table :data="tableData" max-height="500px">
      <el-table-column prop="OnLineMonEmissPointName" label="排放点"></el-table-column>
      <el-table-column prop="MonTimeStr" label="监测时间"></el-table-column>
      <el-table-column  label="氮氧化物">
src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue
@@ -7,20 +7,11 @@
    <div class="border_corner border_corner_right_bottom"></div>
    <div class="main">
      <div class="main-table">
        <el-table
            stripe='stripe'
            :height="300"
            tooltip-effect="dark"
            :data="displayContentTableData"
            :row-class-name="tableRowClassName"
        >
          <el-table-column prop="StoragePlaceId" label="序号"></el-table-column>
          <el-table-column prop="StoragePlaceTypeName" label="类别"></el-table-column>
          <el-table-column prop="StoragePlaceName" label="固废名称"></el-table-column>
          <el-table-column prop="StorageZDMJ" label="代码"></el-table-column>
          <el-table-column prop="StorageZCNL" label="产生量(t)"></el-table-column>
          <el-table-column prop="StorageZCL" label="储存量(t)"></el-table-column>
          <el-table-column prop="StorageType" label="产生装置"></el-table-column>
        <el-table :data="listData" style="width: 100%" stripe='stripe'
                  :height="300"
                  tooltip-effect="dark" :row-class-name="tableRowClassName">
          <el-table-column v-for="(item, index) in listLabel" :key="index" :prop="item.prop"
                           :label="item.label"></el-table-column>
        </el-table>
      </div>
    </div>
@@ -33,13 +24,43 @@
  props: ['displayContentTable'],
  data () {
    return {
      displayContentTableData: []
      listData: [],
      listLabel: [
        {
          label: '序号',
          prop: 'StoragePlaceId'
        },
        {
          label: '类别',
          prop: 'StoragePlaceTypeName'
        },
        {
          label: '固废名称',
          prop: 'StoragePlaceName'
        },
        {
          label: '代码',
          prop: 'StorageZDMJ'
        },
        {
          label: '产生量(t)',
          prop: 'StorageZCL'
        },
        {
          label: '贮存量(t)',
          prop: 'StorageZCNL'
        },
        {
          label: '产生装置',
          prop: 'StorageType'
        }
      ]
    }
  },
  mounted () {
    this.$nextTick(() => {
      this.displayContentTable.forEach(item => {
        this.displayContentTableData = item
        this.listData = item
      })
    })
  },
@@ -64,7 +85,7 @@
.win {
  position: relative;
  background-color: rgba(33, 41, 69, 0.9);
  min-height: 300px;
  min-height: 354px;
}
.main {
src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue
@@ -32,14 +32,14 @@
        </div>
        <div v-else-if="value === 'feishui'">
          <el-row type="flex" class="row-bg row-item-one" justify="space-around">
            <el-col :span="8">监测点名称:{{ setWasteGasdata.Name }}</el-col>
            <el-col :span="8">生产单位:{{ setWasteGasdata.porltName }}</el-col>
            <el-col :span="8">排放类型名称:{{ setWasteGasdata.MonTypeName }}</el-col>
            <el-col :span="8">监测点名称:{{ setWasteWaterdata.Name }}</el-col>
            <el-col :span="8">生产单位:{{ setWasteWaterdata.porltName }}</el-col>
            <el-col :span="8">排放类型名称:{{ setWasteWaterdata.MonTypeName }}</el-col>
          </el-row>
          <el-row type="flex" class="row-bg" justify="space-around">
            <el-col :span="8">排放去向:{{ setWasteGasdata.EmissDirecti }}</el-col>
            <el-col :span="8">控制级别名称:{{ setWasteGasdata.ContrLevelShowName }}</el-col>
            <el-col :span="8">内/外排口:{{ setWasteGasdata.OrOutPortName }}</el-col>
            <el-col :span="8">排放去向:{{ setWasteWaterdata.EmissDirecti }}</el-col>
            <el-col :span="8">控制级别名称:{{ setWasteWaterdata.ContrLevelShowName }}</el-col>
            <el-col :span="8">内/外排口:{{ setWasteWaterdata.OrOutPortName }}</el-col>
          </el-row>
        </div>
      </div>
@@ -50,7 +50,7 @@
<script>
export default {
  name: 'GasTable',
  props: ['displayContentTab', 'value', 'setWasteGasdata'],
  props: ['displayContentTab', 'value', 'setWasteGasdata', 'setWasteWaterdata'],
  data () {
    return {
      tabData: []
src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue
@@ -31,10 +31,10 @@
  border: 1px solid #396d83;
  padding: 6px;
  //.main-video {
    height: 378px;
    height: 432px;
    video {
      width: 100%;
      height: 378px;
      height: 432px;
      outline: none;
    }
  //}
src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -7,11 +7,11 @@
    <div class="public-bounced-content">
      <div class="public-bounced-content-left">
        <public-tabs :displayContentTab="displayContentTab" :value="value"
                     :setWasteGasdata="setWasteGasdata"></public-tabs>
                     :setWasteGasdata="setWasteGasdata" :setWasteWaterdata="setWasteWaterdata"></public-tabs>
        <div class="public-bounced-content-left-bottom">
          <public-table v-if="value === 'gufei'"
                        :displayContentTable="displayContentTable"></public-table>
          <public-chart v-else :getWasteGasDetails="getWasteGasDetails"></public-chart>
          <public-chart v-else :getWasteGasDetails="getWasteGasDetails" :getWasteWaterMonitoring="getWasteWaterMonitoring" ></public-chart>
        </div>
      </div>
      <div class="public-bounced-content-right">
@@ -40,12 +40,15 @@
  data () {
    return {
      setWasteGasdata: '',
      setWasteWaterdata: '',
      displayContentTitle: '',
      displayContentTab: '',
      displayContentTable: '',
      flag: false,
      value: '',
      getWasteGasDetails: []
      getWasteGasDetails: [],
      getWasteWaterMonitoringDetails: [],
      getWasteWaterMonitoring: []
    }
  },
  methods: {
@@ -68,6 +71,16 @@
      this.flag = true
      this.value = value
    },
    setWaterData (dataWater, dataDetail, drawData, value) {
      this.setWasteWaterdata = dataWater
      // console.log(data)
      this.getWasteWaterMonitoring = drawData
      console.log(drawData)
      this.getWasteWaterMonitoringDetails = dataDetail
      this.displayContentTitle = dataWater.Name
      this.flag = true
      this.value = value
    },
    closePopup () {
      this.flag = false
    }
src/components/LayerController/LayerController.vue
@@ -1,13 +1,13 @@
<template>
  <div :class='["float-panel",layerControllerVisible ? "active" : ""]' >
    <div @click="showPanel" class="iconBtn transition" :class='layerControllerVisible ? "active-button" : ""' v-show="!layerControllerVisible" style="position: absolute;top:0;left: 0">
      <img src="@assets/images/map-pages/icon/layer.png" alt="" class="icon">
      <span class="icon-name">图层</span>
    <div @click="showPanel" class="iconBtn" :class='layerControllerVisible ? "active-button" : ""' v-show="!layerControllerVisible" style="  position: absolute;top:0;left: 0;">
        <img src="@assets/images/map-pages/icon/layer.png" alt="" class="icon">
<!--        <span class="icon-name">图层</span>-->
    </div>
    <transition name="fade">
      <div :class="'legend-content map-background'" v-show="layerControllerVisible" style=" transform-origin: top left;">
    <transition name="animationChange">
      <div :class="'legend-content map-background'" v-show="layerControllerVisible">
        <lc-service-layer></lc-service-layer>
        <buttom  @click="showPanel" type="button" class="el-button special-button el-button--default el-icon-d-arrow-left"></buttom>
        <button  @click="showPanel" type="button" class="el-button special-button el-button--default el-icon-d-arrow-left"></button>
      </div>
    </transition>
  </div>
@@ -71,15 +71,28 @@
</script>
<style lang="less">
  .animationChange-enter-active, .animationChange-leave-active {
    transition: all 0.5s;
  }
  .animationChange-enter, .animationChange-leave-to {
    opacity: 0;
    transform: translateX(-100px);
  }
  .float-panel.active{
    overflow: visible;
  }
.float-panel {
  position: absolute;
  left: 0.14583rem;
  top: 0.8rem;
  top: 0.73979rem;
  height: auto;
  font-size: 11px;
  z-index: 1000;
  display: flex;
  min-height: 0.28rem;
  min-width: 0.28rem;
  overflow: hidden;
  div {
    color: #00fff6;
  }
@@ -234,7 +247,7 @@
    background:@background-color;
  }
  .legend-content{
    width:  1.79167rem;
    width: 2.2rem;
  }
}
src/components/LayerController/logic/SolidWaste.js
@@ -71,18 +71,21 @@
  // 根据点击不同数据 进行接口的数据请求
  this.requestSolidWasteData = async (e) => {
    // 基本信息展示
    // 基本信息 和 详细信息 展示数据所需参数
    const dataValue = {
      StoragePlaceId: e.layer.options.totransferData.StoragePlaceId
    }
    // 基本信息 tabs
    const resultBasic = await mapApi.getSolidWasteBaseInfo(dataValue)
    // 详细信息展示
    // 详细信息展示 table
    const resultDetailed = await mapApi.getSolidWasteDetail(dataValue)
    // 绑定弹框实例
    const PublicBounced = window.Vue.extend(publicBounced)
    const instance = new PublicBounced()
    instance.$mount()
    document.body.appendChild(instance.$el)
    // 通过方法 向绑定弹框传递数据
    instance.setData(resultBasic.Result.DataInfo, resultDetailed.Result.DataInfo, 'gufei')
    /* flyTo()弹出框平移事件 */
    this.setPanTo(e.latlng, 200)
src/components/LayerController/logic/WasteWater.js
@@ -52,17 +52,19 @@
  this.clickListener = async (e) => {
    // console.log(e)
    this.animalService.pulseEffect(e.latlng)
    // const dataValue = {
    //   StoragePlaceId: e.layer.options.test.StoragePlaceId
    // }
    // const result = await mapApi.getWasteWater(dataValue)
    // console.log(result)
    const dataValue = {
      StoragePlaceId: e.layer.options.test.StoragePlaceId
    }
    const drawback = await mapApi.getWasteWaterMonitoring()
    console.log(drawback)
    const result = await mapApi.getWasteWaterMonitoringDetails(dataValue)
    const PublicBounced = window.Vue.extend(publicBounced)
    const instance = new PublicBounced()
    instance.setGasData(e.layer.options.test, 'feishui')
    instance.setWaterData(e.layer.options.test, result.Result.DataInfo, drawback.Result.DataInfo, 'feishui')
    console.log(e.layer.options.test)
    instance.$mount()
    document.body.appendChild(instance.$el)
    this.setPanTo(e.latlng, 240)
  }
  // 根据返回值的不同标记不同图片
@@ -96,4 +98,11 @@
    }
    return testChange
  }
  this.setPanTo = (pos, value) => {
    var position = pos
    position = window.map.latLngToLayerPoint(position)
    position.y += value
    position = window.map.layerPointToLatLng(position)
    window.map.flyTo(position)
  }
}
src/components/LayerController/modules/LcServiceLayer.vue
@@ -20,7 +20,7 @@
                                   :value="itm.code"
                                   @change="swWmsLayer(itm)"/>{{ itm.name }}
                            <!-- 三级图层遍历 -->
                            <div style="width: 100%">
                            <div class="layerbox-item-3">
                                <div class="basemap-layer-item" v-for="layer in itm.layers" :key="layer.code">
                                    <input type="checkbox"
                                           :name="'wmsSublayers_'+item.code+'_'+layer.code"
@@ -126,15 +126,19 @@
            .layerbox {
                width: 100%;
                .layerbox-item {
                    display: flex;
                    flex-flow: row wrap;
                    margin-left: 15px;
                    margin-top: 5px;
                    padding-left: 20px;
                    padding-top: 5px;
                    .basemap-layer-item {
                        width: 50%;
                        margin-bottom: 5px;
                    }
                }
                .layerbox-item-3{
                    padding-left: 20px;
                    padding-top: 5px;
                    display: flex;
                    flex-wrap: wrap;
                    .basemap-layer-item{width: 50%}
                }
            }
        }
    }
src/components/LayerController/modules/LcServiceLayerFilter.vue
@@ -1,18 +1,19 @@
<template>
    <div class="inner-panel">
        <div class="filter-group">
            <div v-for="item in pointLayers" :key="item.code" class="filter-item">
            <div v-for="item in layers" :key="item.code" class="filter-item">
                <div class="title"><input type="checkbox" :value="item.code" :checked="item.checked"
                                          @change="swAllSubFilter(item)">{{item.name}}
                </div>
              <el-scrollbar style="height:100%">
                <div class="content">
                    <div v-for="filter in item.layers" :key="filter.code">
                        <input type="checkbox" :value="filter.code" :checked="filter.checked" @change="swSubFilter(item.url,filter)"><label
                            :title="filter.name">{{filter.name}}</label>
                <el-scrollbar style="height:100%">
                    <div class="content">
                        <div v-for="filter in item.layers" :key="filter.code">
                            <input type="checkbox" :value="filter.code" :checked="filter.checked"
                                   @change="swSubFilter(item.url,filter)"><label
                                :title="filter.name">{{filter.name}}</label>
                        </div>
                    </div>
                </div>
              </el-scrollbar>
                </el-scrollbar>
            </div>
        </div>
    </div>
@@ -20,54 +21,77 @@
<script>
import { mapMutations } from 'vuex'
import { LayerSewersPoint } from '@src/conf/layers/LayerSewers'
export default {
  name: 'LcServiceLayerFilter',
  components: {},
  components: { },
  data () {
    return {
      visible: {},
      layerSewersPoint: LayerSewersPoint,
      layers: [],
      filterConfig: [] // 附属要素
    }
  },
  computed: {
    serviceLayers () {
      return this.$store.state.map.serviceLayers.LayerSewersLine
    },
    config () {
      return this.$store.state.map.config
    },
    pointLayers () {
      // 根据线图层选中情况,显示或隐藏点图层面板
      var serviceLayers = this.config.mapConfig.Layers.LayerSewersLine // 一级图层
      var checkedLayers = window.serviceLayerHelper.getCheckedLayers(serviceLayers)
      var pointLayers = this.config.mapConfig.Layers.layerSewersPoint // 二级图层
      return pointLayers.filter(function (layer) {
        var code = layer.code
        for (var i = 0; i < checkedLayers.length; i++) {
          var checkedLayer = checkedLayers[i]
          if (checkedLayer.childLayer.indexOf(code) >= 0) {
            return checkedLayer
          }
        }
      })
    }
  },
  mounted () {
    // this.filterConfig = window.serviceLayerHelper.getWMSConfig().filtersGroup
  },
  methods: {
    ...mapMutations([]),
    swAllSubFilter (item) {
      item.checked = !item.checked
      console.log(item)
      // window.serviceLayerHelper.loadLayers()
    },
    // todo 还需要优化,在有多个需要子图层独立弹窗情况下无效
    toggle (serviceLayers) {
      for (var i = 0; i < serviceLayers.length; i++) {
        var serviceLayer = serviceLayers[i]
        var childLayer = serviceLayer.childLayer
        if (childLayer) {
          if (this.checkChecked(serviceLayer.layers)) {
            this.layers = childLayer
          } else {
            this.layers = []
          }
          break
        } else {
          this.toggle(serviceLayer.layers)
        }
      }
    },
    checkChecked (serviceLayers) {
      for (var i = 0; i < serviceLayers.length; i++) {
        var serviceLayer = serviceLayers[i]
        var checked = serviceLayer.checked
        if (checked) {
          return true
        }
      }
    },
    swSubFilter (url, item) {
      item.checked = !item.checked
      if (item.checked) {
        window.serviceLayerHelper.loadGeojsonLayer(url, item)
        window.layerFactory.show(item)
      } else {
        window.serviceLayerHelper.removeLayer(item)
        window.layerFactory.hide(item)
      }
      // window.serviceLayerHelper.loadLayers()
    }
  },
  watch: {
    // 此处需要深度监听图层选中状态,使用computed无效
    '$store.state.map.serviceLayers.LayerSewersLine': {
      handler: function (val) {
        this.toggle(val)
      },
      immediate: true,
      deep: true
    }
  }
}
@@ -75,12 +99,11 @@
<style scoped lang="less">
    .inner-panel {
        width: 500px;
        color: #90c8e0;
        font-size: 13px;
        position: absolute;
        left: 260px;
        left: 2.5rem;
        z-index: 1000;
        height: 220px;
        top: 0;
@@ -106,6 +129,7 @@
                    max-height: 200px;
                    //overflow-y: hidden;
                }
                //
                //::-webkit-scrollbar {
                //    width: 7px;
src/components/LayerController/service/WfsLayerService.js
@@ -29,7 +29,10 @@
  }
  loadData (wfsUrl) {
    AjaxUtils.get4JsonDataByUrl(wfsUrl, this.params, (res) => this.draw(res.data.features))
    AjaxUtils.get4JsonDataByUrl(wfsUrl, this.params, (res) => {
      console.log(res)
      this.draw(res.data.features)
    })
  }
  draw (features) {
src/components/panel/LegendPanel.vue
@@ -23,17 +23,23 @@
  </div>
</template>
<script>
import { LayerWasteWater } from '../../conf/layers/LayerWasteWater'
import { LayerWasteGas } from '../../conf/layers/LayerWasteGas'
import { LayerWasteSolid } from '../../conf/layers/LayerWasteSolid'
import { LayerAirQuality } from '../../conf/layers/LayerAirQuality'
import { LayerEnvRisk } from '../../conf/layers/LayerEnvRisk'
import { LayerSoilGroundWater } from '../../conf/layers/LayerSoilGroundWater'
import { LayerPipeLines } from '../../conf/layers/LayerPipeLines'
import { LayerPk } from '../../conf/layers/LayerPk'
import { LayerArea } from '../../conf/layers/LayerArea'
export default {
  name: 'LegendPanel',
  data () {
    return {
      // 控制图例 内容的 显示/隐藏
      legendControl: false
    }
  },
  computed: {
    serviceLayers () {
      return this.$store.state.map.serviceLayers.LayerSewersLine
      legendControl: false,
      serviceLayers: [LayerSoilGroundWater, LayerEnvRisk, LayerAirQuality, LayerWasteSolid, LayerWasteGas, LayerWasteWater, LayerArea, LayerPk, LayerPipeLines]
    }
  },
  methods: {
src/components/panel/RightSearchPanel.vue
@@ -5,6 +5,11 @@
<!--           :class="{'B-TMT-tab-waybill-isActive': isWaybillHover}">-->
<!--        <img :src="item.icon" style="width: 24px;height: 24px;"></div>-->
      <div class="container">
          <ul>
              <li style="text-align: right">
                  <button type="button" class="el-button special-button el-button--default el-icon-d-arrow-right"></button>
              </li>
          </ul>
        <ul  v-for="item in topicList" :key="item.name" :class="item.checked?'module-wrap map-btn-active':'module-wrap map-btn-unactive'" @click="()=>{selected(item)}" >
          <el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left">
          <li>
@@ -222,7 +227,7 @@
  //top: 10px;
  height: 0;
  position: absolute;
  top: .46rem;
  top: 0.42979rem;
  right: 0.14583rem;
  z-index: 501;
  display: -webkit-box;
@@ -248,6 +253,15 @@
  //  background-color: #061e51 !important;
  //  border: solid 1px #0e639e !important;
  //}
    .el-button--default {
        padding: 15px 3px;
        background: rgba(0, 16, 30, 0.7);
        color: #C0C4CC;
    }
    .el-button--default:hover{
        background: transparent;
        border-color: #0f93a9;
    }
  .el-form-item__label {
    color: rgb(52, 224, 255);
src/components/panel/ToolBoxPanel.vue
@@ -1,9 +1,9 @@
<template>
  <div class="left-top-toolbox-panel">
    <div class="specific-tools">
      <el-button :class="selectGroup === true ?'active-button':''" class="el-button-choice"   @mouseover.enter.native="changeSelectMouse">
      <el-button :class="selectGroup === true ?'active-button':''" class="el-button-choice"   @click.enter.native="changeSelectMouse">
          <img src="@assets/images/map-pages/icon/toolbox/Selecd/tool.png" alt="" class="icon" />
          <span class="span-default">工具</span>
          <!--<span class="span-default">工具</span>-->
      </el-button>
      <transition name="animationChange">
        <el-row v-show="selectGroup" class="specific-tools-group">
@@ -20,8 +20,8 @@
                       @click.native="changeChoose(index)">
              <img :src="item.iconSelecd" alt="" v-if="active === index"/>
              <img :src="item.icon" alt="" v-else/>
              <span v-if="active === index">{{ item.label }}</span>
              <span v-else class="default-span">{{ item.label }}</span>
              <!--<span v-if="active === index">{{ item.label }}</span>
              <span v-else class="default-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'">
@@ -409,16 +409,15 @@
  .specific-tools {
    display: flex;
    .el-button {
    overflow: hidden;
     .el-button {
      z-index: 999;
      padding: 0;
      margin: 0 0.015rem;
      width: 45px;
      height: 45px;
      width: 0.2725rem;
      height: 0.2725rem;
      background: @background-color;
      //vertical-align: middle !important;
      vertical-align: middle !important;
      .base-map-img {
        position: absolute;
      }
@@ -437,6 +436,10 @@
      span {
        display: block;
        font-size: 10px;
      }
    }
    .specific-tools-group .el-button{
      span{
        color: #0B89B5;
      }
    }
@@ -447,8 +450,8 @@
      padding: 0;
      margin: 0;
      margin-right:0.015rem;
      width: 45px;
      height: 45px;
      width: 0.2725rem;
      height: 0.2725rem;
      background: @background-color;
      border: 0.00521rem solid @color-shadow;
    }
@@ -460,6 +463,7 @@
    .specific-tools-group {
      z-index: 1;
      .tools-panel-choose {
        border: none;
        box-shadow: 0 0 0.03rem @color-shadow;
@@ -481,11 +485,56 @@
      }
      .special-button {
        width: 22px;
        height: 45px;
        width: 0.1362rem;
        height: 0.2725rem;
        color: @color-over;
      }
    }
  }
}
.base-map-inner-panel {
  display: flex;
  justify-content: center;
  align-items: center;
  .base-map-img {
    position: absolute;
  }
  .base-map-img-Tool:hover {
    cursor: pointer;
  }
  .base-map-anno-Tool {
    position: absolute;
    margin-left: 2px;
    background-color: rgba(0, 0, 0, .5);
    color: @color-over;
    .el-checkbox__label {
      padding-left: 5px !important;
    }
  }
  .basemap-layer-item {
    display: flex;
    width: 50px;
    height: 50px;
    margin: 10px;
    border: 2px solid white;
    input {
      position: relative;
      left: 0;
      top: -53px;
    }
    .basemap-layer-item-name {
      position: relative;
      left: 0;
      top: -53px;
    }
  }
}
</style>
src/components/table/enterprise.vue
@@ -3,7 +3,7 @@
        <div class="enterprise-function" @click="showWarnDialog()">
            <div :class='["iconBtn",warnVisible ? "active-button" : ""]'>
                <img src="@/assets/images/map-pages/icon/map/warn.png" alt="" class="icon">
                <span class="icon-name">预报警</span>
                <!--<span class="icon-name">预报警</span>-->
                <!--    <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="预报警" placement="left">
                    <img src="@/assets/images/map-pages/icon/map/warn.png" alt="" width="26px" style="display: block;margin: auto">
@@ -13,7 +13,7 @@
        <div class="enterprise-function" @click="showStatisDialog()">
            <div :class='["iconBtn",companyVisible ? "active-button" : ""]'>
                <img src="@/assets/images/map-pages/icon/map/company.png" alt="" class="icon">
                <span class="icon-name">指标</span>
<!--                <span class="icon-name">指标</span>-->
            </div>
        </div>
        <Dialog ref="warnDialog" title="企业预警报警分类统计" >
@@ -82,7 +82,7 @@
        cursor: pointer;
    }
    .enterprise-function:not(:first-child){
        margin-left: 10px;
        margin-left: 0.05rem;
    }
}
</style>
src/components/table/summarySheets.vue
@@ -2,7 +2,7 @@
    <div class="summary-sheets">
        <div :class='["iconBtn",summaryVisible ? "active-button" : ""]' @click="closeBtn">
            <img src="@assets/images/map-pages/icon/toolbox/table.png" alt="" class="icon">
            <span class="icon-name">统计表</span>
            <!--<span class="icon-name">统计表</span>-->
        </div>
        <Dialog ref="summarySheets" title="企业指标分类统计">
          <tab-handover></tab-handover>
@@ -46,7 +46,7 @@
<style scoped lang="less">
    .summary-sheets {
        position: absolute;
        top: 0.46rem;
        top: 0.42979rem;
        left: 0.14583rem;
        /*width: 850px;*/
        /*height: 265px;*/
src/conf/layers/LayerPipeLines.js
@@ -1,6 +1,9 @@
/**
 * 管网
 */
import { LayerHbss } from './LayerHbss'
import { LayerFsss } from './LayerFsss'
const APP_GIS_HOST_2 = 'http://xearth.cn:8088'
const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs'
@@ -8,6 +11,7 @@
  code: 'sewersPipeLines',
  name: '管线',
  checked: true,
  childLayer: [LayerFsss, LayerHbss],
  layers: [
    {
      code: 'rainline',
@@ -15,7 +19,7 @@
      sname: '雨水线',
      checked: true,
      wfs: WFS_URL + '?TYPENAME=管网',
      minZoom: 10 // 在指定级别显示
      minZoom: 10
    },
    {
      code: 'accidentline',
src/conf/layers/LayerSewers.js
@@ -103,7 +103,7 @@
export const LayerSewersPoint = [
  {
    code: 'fsss',
    code: 'sewersFsss',
    name: '附属设施',
    checked: false, // 默认选中状态
    type: 'geojson',
@@ -171,7 +171,7 @@
    ]
  },
  {
    code: 'hbss',
    code: 'sewersHbss',
    name: '环保设施',
    checked: false, // 默认选中状态
    type: 'geojson',
@@ -233,7 +233,7 @@
    ]
  },
  {
    code: 'pk',
    code: 'sewersPk',
    name: '排口',
    checked: false, // 默认选中状态
    type: 'geojson',
@@ -249,7 +249,7 @@
    ]
  },
  {
    code: 'qyxx',
    code: 'sewersQyxx',
    name: '区域信息',
    checked: false, // 默认选中状态
    type: 'geojson',