From c56e506fd34c58209240e97fc29043639fae5d19 Mon Sep 17 00:00:00 2001 From: ChenZeping <chenzeping> Date: 星期四, 29 四月 2021 15:13:21 +0800 Subject: [PATCH] 统计表,指标,预报警表格弹框公共修改,管线分析功能 --- src/components/LayerController/service/LayerFactory.js | 56 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 30 insertions(+), 26 deletions(-) diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js index 5aedc79..2ab18e6 100644 --- a/src/components/LayerController/service/LayerFactory.js +++ b/src/components/LayerController/service/LayerFactory.js @@ -8,6 +8,7 @@ this.map = window.map this.layers = {} this.layersLogic = {} + this.minZoomLayers = {} } init (layerConfig) { @@ -21,10 +22,23 @@ layers && this.init(config.layers) childLayer && this.init(config.childLayer) + this.initMinZoom(config) this.loadLogic(config) - this.toggleZoomByConfig(config) checked && this.show(config) } + } + } + + initMinZoom (config) { + const minZoom = parseInt(config.minZoom) + if (minZoom) { + var configs = this.minZoomLayers[minZoom] + if (configs) { + configs[configs.length] = config + } else { + configs = [config] + } + this.minZoomLayers[minZoom] = configs } } @@ -93,33 +107,23 @@ * @param layerConfig */ initEvent (layerConfig) { - this.map.on('zoomend ', (e) => this.toggleZoomByLayer(layerConfig)) + this.map.on('zoomend ', () => this.toggleByZoom()) } - toggleZoomByLayer (layerConfig) { - var config = layerConfig - if (Array.isArray(layerConfig)) { - for (var i = 0, l = layerConfig.length; i < l; i++) { - config = layerConfig[i] - var layers = config.layers - var childLayer = config.childLayer - layers && this.toggleZoomByLayer(layers) - childLayer && this.toggleZoomByLayer(childLayer) - this.toggleZoomByConfig(config) - } - } else { - this.toggleZoomByConfig(layerConfig) - } - } - - toggleZoomByConfig (config) { + toggleByZoom () { const zoom = this.map.getZoom() - var checked = config.checked - if (checked && config.minZoom) { - if (zoom > config.minZoom) { - this.show(config) - } else { - this.hide(config) + for (var k in this.minZoomLayers) { + const configs = this.minZoomLayers[k] + for (var j in configs) { + const config = configs[j] + const checked = config.checked + // console.log(zoom) + // console.log(k) + if (checked && zoom > k) { + this.show(config) + } else if (checked && zoom < k) { + this.hide(config) + } } } } @@ -192,7 +196,7 @@ this.findLayerById(layer.getLayers(), id) } else { layer.eachLayer(function (layer) { - console.log(layer) + // console.log(layer) }) } } -- Gitblit v1.8.0