派生自 wuyushui/SewerAndRainNetwork

chenyabin
2021-05-13 1a69110f3110360ca1d2ed83012faf9c1a92acce
图层控制与搜索联动修改。
2个文件已修改
37 ■■■■ 已修改文件
src/components/LayerController/modules/LcServiceLayer.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/panel/RightSearchPanel.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/modules/LcServiceLayer.vue
@@ -7,12 +7,12 @@
                    <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="item.type==1?'active':''" :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">
                            <input type="checkbox" :class="itm.type==1?'active':''" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swAllLayers(itm,item.name)"/>{{ itm.name }}
                            <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 }}
                            <!-- 三级图层遍历 -->
                            <div class="layerbox-item-3">
                                <div class="basemap-layer-item" v-for="(layer,index3) in itm.layers" :key="index3">
@@ -21,7 +21,7 @@
                                           :name="'wmsSublayers_'+item.code+'_'+layer.code"
                                           :checked="layer.checked"
                                           :value="layer.code"
                                           @change="swAllLayers(layer,'')"/>
                                           @change="swAllLayers(layer)"/>
                                    <span :style="'color:'+layer.color">{{ layer.name }}</span>
                                </div>
                            </div>
@@ -48,20 +48,11 @@
  mounted () {
  },
  methods: {
    swAllLayers (item, v) {
    swAllLayers (item) {
      // eslint-disable-next-line no-debugger
      item.checked = !item.checked
      this.toggleLayer(item)
      this.swLayers(item.layers, item.checked)
      // 判断是否是点击 专题图层 下的子节点
      if (v === '专题图层') {
        bus.$emit('changeSearchBar', item)
      }
      // 判断是否点击的 一级专题图层
      if (item.name === '专题图层') {
        console.log(item, '88888888888888')
      }
      this.serviceLayers.forEach(function (item1, index1) {
        if (item1.layers) {
          item1.istrue = 0
@@ -83,22 +74,26 @@
              } else {
                item2.type = 1
              }
              if (item1.name === '专题图层') {
                bus.$emit('changeSearchBar', item2)
                // console.log(item2, 'item2')
              }
              if (item2.checked) { item1.istrue += 1 } else { item1.isfalse += 1 }
            }
          })
          if (item1.istrue === item1.layers.length) {
            item1.type = 2
            item1.type = 2 // 全选
            item1.checked = true
          } else if (item1.isfalse === item1.layers.length) {
            item1.type = 0
            item1.type = 0 // 不选
            item1.checked = false
          } else {
            item1.type = 1
            item1.type = 1 // 半选
          }
          // console.log(item1.layers.length, item1.istrue, item1.isfalse, item1.type)
        }
      })
      console.log(this.serviceLayers)
      // console.log(this.serviceLayers)
    },
    swLayers (layers, checked) {
      if (layers) {
src/components/panel/RightSearchPanel.vue
@@ -221,7 +221,13 @@
      that.gcComp = ''
      that.topicList.forEach((item) => {
        if (item.name === obj.name) {
          item.isShow = obj.checked
          // console.log(obj)
          if (obj.type > 0) {
            item.isShow = true
          } else {
            item.isShow = false
          }
          // item.isShow = obj.checked
          if (item.isShow) {
            that.selected(item)
          } else {