| | |
| | | <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 |
| | | @change="swAllSubFilter(filter)"><label |
| | | :title="filter.name">{{filter.name}}</label> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapMutations } from 'vuex' |
| | | import { LayerSewersPoint } from '@src/conf/layers/LayerSewers' |
| | | |
| | | export default { |
| | | name: 'LcServiceLayerFilter', |
| | | components: { }, |
| | | data () { |
| | | return { |
| | | visible: {}, |
| | | layerSewersPoint: LayerSewersPoint, |
| | | layers: [], |
| | | filterConfig: [] // 附属要素 |
| | | } |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | ...mapMutations([]), |
| | | swAllSubFilter (item) { |
| | | // eslint-disable-next-line no-debugger |
| | | item.checked = !item.checked |
| | | // window.serviceLayerHelper.loadLayers() |
| | | this.toggleLayer(item) |
| | | this.swLayers(item.layers, item.checked) |
| | | }, |
| | | swLayers (layers, checked) { |
| | | if (layers) { |
| | | for (let i = 0, len = layers.length; i < len; ++i) { |
| | | var layer = layers[i] |
| | | layer.checked = checked |
| | | this.toggleLayer(layer) |
| | | if (layer.layers) { |
| | | this.swLayers(layer.layers, checked) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | // 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 |
| | | if (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.layers = [] |
| | | this.toggle(serviceLayer.layers) |
| | | } |
| | | break |
| | | } else { |
| | | this.toggle(serviceLayer.layers) |
| | | } |
| | | } |
| | | }, |
| | |
| | | } |
| | | } |
| | | }, |
| | | swSubFilter (url, item) { |
| | | item.checked = !item.checked |
| | | toggleLayer (item) { |
| | | if (item.checked) { |
| | | window.layerFactory.show(item) |
| | | } else { |