派生自 wuyushui/SewerAndRainNetwork

XingChuan
2021-05-30 ca2a7113f660f523518c4be431534e7eebaa297e
Merge remote-tracking branch 'origin/develop' into develop
6个文件已修改
195 ■■■■ 已修改文件
src/components/LayerController/modules/LcServiceLayer.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/helpers/MapManager.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/RightSearchPanel.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/table/components/tabHandover.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/Constants.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/Topic.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/modules/LcServiceLayer.vue
@@ -7,17 +7,17 @@
                    <i class="downUp el-icon-caret-bottom" @click="item.isShow=!item.isShow" :class="item.isShow?'':'active'" ></i><!-- el-icon-arrow-down -->
                    <!-- 一级图层遍历 -->
                    <div style="padding-left:25px;padding-top:10px;color:#fff;font-size: 16px;">
                        <input type="checkbox"  :class="item.type==1?'active':''" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }}
                        <input type="checkbox" :class="{ 'active': item.type === 1 }" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }}
                    </div>
                    <div class="layerbox-item" v-show="item.isShow" >
                        <!-- 二级图层遍历 -->
                        <div class="basemap-layer-item" v-for="(itm,index2) in item.layers" :key="index2" :class="!itm.layers?'felxs':''" >
                            <input type="checkbox" :class="itm.type==1?'active':''" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swAllLayers(itm)"/>{{ itm.name }}
                            <input type="checkbox" :class="{ 'active': itm.type === 1 }" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swAllLayers(itm)"/>{{ itm.name }}
                            <!-- 三级图层遍历 -->
                            <div class="layerbox-item-3" v-show="itm.layers">
                                <div class="basemap-layer-item" v-for="(layer,index3) in itm.layers" :key="index3">
                                    <input type="checkbox"
                                           :class="layer.type==1?'active':''"
                                           :class="{ 'active': layer.type === 1 }"
                                           :name="'wmsSublayers_'+item.code+'_'+layer.code"
                                           :checked="layer.checked"
                                           :value="layer.code"
@@ -68,6 +68,8 @@
      } else {
        this.toggleLayer(item)
      }
      /* <<<<<<< HEAD
      bus.$emit('changeSearchBar', item)
      this.serviceLayers.forEach(function (item1, index1) {
        if (item1.layers) {
          item1.istrue = 0
@@ -112,6 +114,7 @@
          // console.log(item1.layers.length, item1.istrue, item1.isfalse, item1.type)
        }
      })
>>>>>>> de7390c66ef3e3fe316e804495a78d05a01f0160 */
      // console.log(this.serviceLayers)
    },
    swLayers (configs, checked) {
@@ -126,6 +129,30 @@
        }
      }
    },
    setLayerType (configs, checkedSum) {
      if (configs) {
        for (let i = 0, len = configs.length; i < len; ++i) {
          const config = configs[i]
          const checked = config.checked
          if (config.layers) {
            checkedSum = this.setLayerType(config.layers, checkedSum || 0)
            if (checkedSum === config.layers.length) {
              config.type = 2
              config.checked = true
            } else if (checkedSum === 0) {
              config.type = 0
              config.checked = false
            } else {
              config.type = 1
            }
            checkedSum = 0
            continue
          }
          checkedSum = checkedSum + (checked ? 1 : 0)
        }
        return checkedSum
      }
    },
    toggleLayer (itm) {
      if (itm.checked) {
        window.layerFactory.show(itm)
@@ -134,6 +161,15 @@
      }
      // this.updateWms()
    }
  },
  watch: {
    serviceLayers: {
      handler: function (val) {
        this.setLayerType(val, 0)
      },
      immediate: true,
      deep: true
    }
  }
}
</script>
src/components/helpers/MapManager.js
@@ -44,7 +44,7 @@
      var point = this.map.latLngToContainerPoint(latlng, this.map.getZoom())
      const wmsLayerService = window.layerFactory.wmsLayerService
      const layers = wmsLayerService.wmsLayerList.getLayers()
      // const filters = wmsLayerService.wmsLayerList.getFilters()
      const filters = wmsLayerService.wmsLayerList.getFilters()
      const wmsParams = Object.assign({
        LAYERS: layers,
        QUERY_LAYERS: layers,
@@ -54,6 +54,9 @@
        Y: Math.round(point.y),
        BBOX: this.map.getBounds().toBBoxString()
      }, this.defaultWmsParams, params)
      if (filters) {
        wmsParams.CQL_FILTER = filters
      }
      AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
        resolve(res.data)
      })
src/components/panel/RightSearchPanel.vue
@@ -12,7 +12,7 @@
                    </div>
                </li>
            </ul> -->
            <ul v-for="item in topicList" :key="item.name"
            <ul v-for="item in list" :key="item.name"
                :class="item.checked?'module-wrap map-btn-active':'module-wrap map-btn-unactive'"
                @click="()=>{selected(item)}" v-show="item.isShow">
              <el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left">
@@ -51,7 +51,7 @@
<script>
import EnvRiskSearch from './topicSearch/EnvRiskSearch'
import DischargeSearch from './topicSearch/DischargeSearch'
import { TopicList } from '../../conf/Topic'
import { topicList } from '../../conf/Topic'
import GasWasteSearch from '@components/panel/topicSearch/GasWasteSearch'
import WaterWasteSearch from '@components/panel/topicSearch/WaterWasteSearch'
@@ -61,8 +61,6 @@
import PipeChangesSearch from '@components/panel/topicSearch/pipeChangesSearch.vue'
import PipeInformationSearch from '@components/panel/topicSearch/pipeInformationSearch.vue'
import EnterpriseEmergencySearch from './topicSearch/EnterpriseEmergencySearch'
import bus from '@/eventBus'
export default {
  name: 'MonitorPanel',
@@ -78,7 +76,7 @@
    return {
      isShow: true,
      topicMenu: [],
      topicList: TopicList,
      list: topicList,
      topicCheckedList: [],
      isPanelVisible: false,
      gcComp: SewersSearch,
@@ -91,7 +89,11 @@
      selectGroup: false
    }
  },
  computed: {},
  computed: {
    serviceLayers () {
      return this.$store.state.map.serviceLayers.LayerSewersLine
    }
  }, /*
  watch: {
    '$store.state.map.topic.topicCheckedList': function (newVal, oldVal) {
      console.log(oldVal)
@@ -106,26 +108,46 @@
        })
      })
    }
  },
  }, */
  methods: {
    handleClose (done) {
      console.log(done)
    },
    setSearchPanelChange () {
      // 搜索面板没有显示时,将所有主题选择状态设置为false
      this.selectGroup = !this.selectGroup
      if (!this.selectGroup) {
        this.topicList.forEach((itm) => {
        this.list.forEach((itm) => {
          itm.checked = false
        })
      }
    },
    unselected (val) {
      // console.log(val)
      this.selectGroup = true
      this.list.forEach((itm) => {
        if (itm.name === val.name) {
          console.log(val.name)
          itm.checked = false
          itm.isShow = false
        }
      })
    },
    selected (val) {
      // console.log(val)
      this.title = val.name
      this.selectGroup = true
      this.topicList.forEach((itm) => {
        itm.checked = val.name === itm.name
      this.list.forEach((itm) => {
        if (itm.name === val.name) {
          itm.isShow = true
          itm.checked = true
        } else {
          itm.checked = false
        }
      })
      this.setComp(val)
    },
    setComp (val) {
      this.title = val.name
      switch (val.name) {
        case '污染源':
          this.gcComp = DischargeSearch
@@ -160,9 +182,6 @@
      }
    },
    handlePage (page) {
    },
    handleGd () {
      this.title = '管道信息查询'
    },
    toggleMonitorPanel () {
      this.isCollapse = !this.isCollapse
@@ -204,37 +223,60 @@
      //     })
      //   }
    },
    defaultLastOne () {
      let v = {}
      this.topicList.forEach((item) => {
        if (item.isShow) {
          v = item
    containsLayer (layer) {
      if (layer) {
        for (let i = 0; i < layer.length; i++) {
          const lay = layer[i]
          const checked = lay.checked
          for (let j = 0; j < this.list.length; j++) {
            const topic = this.list[j]
            if (lay.name === topic.name) {
              if (lay.layers) {
                const isChecked = this.isChecked(lay.layers)
                if (isChecked) {
                  this.selected(topic)
                } else {
                  this.unselected(topic)
                }
              } else if (checked) {
                this.selected(topic)
              }
              break
            }
          }
          this.containsLayer(lay.layers)
        }
      })
      this.selected(v)
      }
    },
    isChecked (layers) {
      for (let i = 0; i < layers.length; i++) {
        const layer = layers[i]
        const checked = layer.checked
        if (checked) {
          return true
        }
        if (layer.layers) {
          return this.isChecked(layer.layers)
        }
      }
      return false
    }
  },
  mounted () {
    const that = this
    bus.$on('changeSearchBar', function (obj) {
      that.gcComp = ''
      that.topicList.forEach((item) => {
        if (item.name === obj.name) {
          if (obj.type > 0) {
            item.isShow = true
          } else {
            item.isShow = false
          }
          // item.isShow = obj.checked
          if (item.isShow) {
            that.selected(item)
          } else {
            that.defaultLastOne()
          }
        }
      })
    })
  //  console.log(that.topicList)
    /* bus.$on('changeSearchBar', (obj) => {
      const topic = this.search(this.serviceLayers, obj)
      console.log('====' + JSON.stringify(topic))
    }) */
  },
  watch: {
    serviceLayers: {
      handler: function (newVal, oldVal) {
        this.containsLayer(newVal)
      },
      immediate: true,
      deep: true
    }
  }
}
</script>
src/components/table/components/tabHandover.vue
@@ -19,7 +19,6 @@
import EnvironmentalRisk from '@components/table/components/EnvironmentalRisk'
import Pipeline from '@components/table/components/Pipeline'
import CorporateEmergency from '@components/table/components/CorporateEmergency'
import { TopicList } from '../../../conf/Topic'
export default {
  name: 'tabHandover',
@@ -38,7 +37,7 @@
      titleProp: '',
      activeName: '污染源',
      topicList: TopicList, // tab项
      gcComp: PollutionSource // 默认显示污染源内容
      gcComp: PollutionSource
    }
  },
  methods: {
src/conf/Constants.js
@@ -65,7 +65,8 @@
  emergencyesources: '应急物资',
  firefightingunit: '消防单位',
  unitareaboundary: '装置区边界',
  sensitivetarget: '敏感目标'
  sensitivetarget: '敏感目标',
  chokevalve: '截流闸'
}
export const LAYERPROPS = {
@@ -92,6 +93,7 @@
    name: '管网名称',
    linenumtype: '管线类型',
    pipename: '管线名称',
    subchaname: '支线名称',
    mediumtype: '输送介质',
    length: '长度(m)',
    startposname: '起点位置名称',
@@ -414,5 +416,18 @@
    huncount: '常规人口数量',
    structureoridsitearea: '占地面积',
    adminzonename: '行政隶属'
  },
  // 截流闸
  chokevalve: {
    closurename: '名称',
    closurecode: '编码',
    pointnumber: '测点编号',
    mediumtype: '介质',
    size: '尺寸(m)',
    operatingtype: '控制方式',
    telephone: '联系电话',
    resperson: '负责人',
    startdate: '投用日期',
    operationalstatus: '运行状态'
  }
}
src/conf/Topic.js
@@ -12,10 +12,10 @@
  EnterpriseEmergencySearch: () => import('@components/panel/topicSearch/EnterpriseEmergencySearch.vue')
}
export const TopicList = [{
export const topicList = [{
  name: '污染源',
  id: 1,
  check: false,
  checked: false,
  isShow: false,
  icon: 'iconwuranyuan',
  comp: ''