派生自 wuyushui/SewerAndRainNetwork

chenzeping
2021-03-09 4120da64cb01731c1e11792aa2d1f5df6bd80871
src/components/LayerController/modules/LcServiceLayerFilter.vue
@@ -6,9 +6,9 @@
                                          @change="swAllSubFilter(item)">{{item.name}}
                </div>
                <div class="content">
                    <div v-for="filter in item.filters" :key="filter.code">
                        <input type="checkbox" :value="filter.code" :checked="filter.checked"><label
                            :title="filter.name">{{filter.sname}}</label>
                    <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>
@@ -18,7 +18,6 @@
<script>
import { mapMutations } from 'vuex'
import WmsHelper from '../../helpers/WmsHelper'
export default {
  name: 'LcServiceLayerFilter',
@@ -56,21 +55,17 @@
    ...mapMutations([]),
    swAllSubFilter (item) {
      item.checked = !item.checked
      for (let i = 0, len = item.filters.length; i < len; ++i) {
        item.filters[i].checked = item.checked
      console.log(item)
      // window.serviceLayerHelper.loadLayers()
    },
    swSubFilter (url, item) {
      item.checked = !item.checked
      if (item.checked) {
        window.serviceLayerHelper.loadGeojsonLayer(url, item)
      } else {
        window.serviceLayerHelper.removeLayer(item)
      }
      var mapConfig = this.mapConfig
      var wmsHelper = new WmsHelper()
      wmsHelper.initMapConfig(mapConfig)
      var wmsLayersMap = wmsHelper.getWmsLayersMap()
      for (var k in wmsLayersMap) {
        var layers = wmsLayersMap[k]
        var tileLayer = this.serviceLayerHelper.getTileLayer(k)
        if (tileLayer) {
          tileLayer.setParams({ layers: layers.join(',') }, true)
          tileLayer.setUrl(tileLayer.config.url, false)
        }
      }
      // window.serviceLayerHelper.loadLayers()
    }
  }
}
@@ -78,12 +73,12 @@
<style scoped lang="less">
    .inner-panel {
        width: 500px;
        color: #90c8e0;
        font-size: 13px;
        position: absolute;
        left: 250px;
        bottom: 10px;
        left: 300px;
        z-index: 1000;
        height: 220px;