From d690c11330cff652773685b552376289b8574668 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 23 五月 2023 14:35:42 +0800 Subject: [PATCH] 1 --- src/views/Tools/LayerTree.vue | 226 ++++++++++++++++++++++++------------------------------- 1 files changed, 99 insertions(+), 127 deletions(-) diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue index f6c62b0..d5352c9 100644 --- a/src/views/Tools/LayerTree.vue +++ b/src/views/Tools/LayerTree.vue @@ -253,7 +253,7 @@ }, // 瀹氫綅 async positioning () { - this.menuVisible = false; + this.rmListener(); if (["Tileset", "3DML"].indexOf(this.currentData.serveType) > -1) { for (var i in Viewer.scene.primitives._primitives) { if (Viewer.scene.primitives._primitives[i].id == this.currentData.cnName) { @@ -264,7 +264,7 @@ return; } - if (["TMS", "DEM"].indexOf(this.currentData.serveType) > -1 && this.currentData.pubid) { + if (["TMS", "DOM", "DEM"].indexOf(this.currentData.serveType) > -1 && this.currentData.pubid) { var data = await comprehensive_selectPubById({ id: this.currentData.pubid }); if (data.result && data.result.geom) { var wkt = this.$wkt.parse(data.result.geom); @@ -282,7 +282,7 @@ }, // 閽诲瓟鏌辩姸鍥� async histogram () { - this.menuVisible = false + this.rmListener(); var layer = this.currentData.enName.replaceAll("_", ""); this.$store.state.mapSpaceQueryLayer = layer; this.$store.state.mapPopBoxFlag = "2"; @@ -305,110 +305,115 @@ return this.levelArray[this.levelArray.length - 1]; }, - handleCheckChange (data, checked, indeterminate) { - if (data.type == 1) { - this.childOption = []; - this.getchilds(data); - var listWMS = []; - var listWFS = []; - var listTileset = []; - var listTMS = []; - var listMpt = []; - for (var i in this.childOption) { - switch (this.childOption[i].serveType) { - case 'WMS': - listWMS.push(this.childOption[i]) - break; - case 'WFS': - listWFS.push(this.childOption[i]) - break; - case '3DML': - listTileset.push(this.childOption[i]) - break; - case 'Tileset': - listTileset.push(this.childOption[i]) - break; - case 'Mpt': - listMpt.push(this.childOption[i]) - break; - case 'TMS': - listTMS.push(this.childOption[i]) - break; - } - } - this.setChangeWMS(listWMS, checked); - this.setChangeWFS(listWFS, checked); - this.setChangeTileset(listTileset, checked); - this.setChangeTMS(listTMS, checked); - this.setChangeMpt(listMpt, checked); - } else if (data.type == 2) { - if (data.serveType == "WMS") { - this.setChangeWMS([data], checked); - } else if (data.serveType == "Tileset" || data.serveType == "3DML") { - this.setChangeTileset([data], checked); - } else if (data.serveType == "TMS") { - this.setChangeTMS([data], checked); - } else if (data.serveType == "Mpt") { - this.setChangeMpt([data], checked); + // 鍥惧眰閫変腑浜嬩欢 + handleCheckChange (data, checked) { + let nodes = []; + this.getNodes(data, nodes); + + let obj = { WMS: [], Tileset: [], TMS: [], Mpt: [], DEM: [] }; + for (let i = 0, c = nodes.length; i < c; i++) { + let node = nodes[i]; + switch (node.serveType) { + case "WMS": + obj.WMS.push(node); + break; + case "3DML": + case "Tileset": + obj.Tileset.push(node); + break; + case "TMS": + obj.TMS.push(node); + break; + case "Mpt": + obj.Mpt.push(node); + break; + case "DEM": + obj.DEM.push(node); + break; } } + + if (obj.WMS.length) this.setChangeWMS(obj.WMS, checked); + if (obj.Tileset.length) this.setChangeTileset(obj.Tileset, checked); + if (obj.TMS.length) this.setChangeTMS(obj.TMS, checked); + if (obj.Mpt.length) this.setChangeMpt(obj.Mpt, checked); + if (obj.DEM.length) this.setChangeDEM(obj.DEM, checked); }, - setChangeWMS (result, checked) { + // 鑾峰彇瀛愯妭鐐� + getNodes (data, arr) { + if (data.children) { + for (let i = 0, c = data.children.length; i < c; i++) { + var node = data.children[i]; + if (node.children) { + this.getNodes(node, arr) + } else { + arr.push(node); + } + } + } else { + arr.push(data); + } + }, + // 鍒囨崲WMS鏈嶅姟 + setChangeWMS (layers, checked) { var value = this.$refs.tree.getCheckedNodes(); this.$bus.$emit("showMenuLayer", value); }, - setChangeWFS (result, checked) { - var value = this.$refs.tree.getCheckedNodes(); - var std = []; - for (var i in value) { - std.push(value[i].id) - } - for (var i in result) { - var tile = result[i] - if (std.indexOf(tile.id) != -1) { - this.setAddLayers(tile) - } else { - for (var i in window.Viewer.dataSources._dataSources) { - if (window.Viewer.dataSources._dataSources[i].name == tile.cnName) { - window.Viewer.dataSources.remove(window.Viewer.dataSources._dataSources[i]); - } - } + // 鍒囨崲Tileset + setChangeTileset (layers, checked) { + let ids = this.getCheckNodesIds(); + for (var i in layers) { + var layer = layers[i]; + if (ids.indexOf(layer.id) != -1) { + this.setAddLayers(layer); + continue; + } - var layers_ol = window.map.getAllLayers(); - for (var i in layers_ol) { - var layerOl = layers_ol[i]; - if (layerOl.values_.name == tile.cnName) { - window.map.removeLayer(layerOl) - } + for (var j in Viewer.scene.primitives._primitives) { + if (Viewer.scene.primitives._primitives[j].id == layer.cnName) { + Viewer.scene.primitives.remove(Viewer.scene.primitives._primitives[j]); + break; + } + } + + var list = this.$store.state.setAlphaList; + for (var i = 0; i < list.length; i++) { + if (list[i].name == layer.cnName) { + list.splice(i, 1); } } } }, - setChangeTileset (result, checked) { - var value = this.$refs.tree.getCheckedNodes(); - var std = []; - for (var i in value) { - std.push(value[i].id) + // 鑾峰彇鑺傜偣ID + getCheckNodesIds () { + var nodes = this.$refs.tree.getCheckedNodes(); + + var ids = []; + for (var i in nodes) { + ids.push(nodes[i].id); } - for (var i in result) { - var tile = result[i] - if (std.indexOf(tile.id) != -1) { - this.setAddLayers(tile) - } else { - for (var j in Viewer.scene.primitives._primitives) { - if (Viewer.scene.primitives._primitives[j].id == tile.cnName) { - Viewer.scene.primitives.remove(Viewer.scene.primitives._primitives[j]) - } - } - var list = this.$store.state.setAlphaList; - for (var i = 0; i < list.length; i++) { - if (list[i].name == tile.cnName) { - list.splice(i, 1) - } + + return ids; + }, + // 鍒囨崲TMS + setChangeTMS (layers, checked) { + let ids = this.getCheckNodesIds(); + for (var i in layers) { + var layer = layers[i]; + if (ids.indexOf(layer.id) != -1) { + this.setAddLayers(layer); + continue; + } + + for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) { + if (window.Viewer.imageryLayers._layers[i].name == layer.cnName) { + window.Viewer.imageryLayers.remove(window.Viewer.imageryLayers._layers[i]); + break; } } } }, + // 鍒囨崲Mpt setChangeMpt (result, checked) { var value = this.$refs.tree.getCheckedNodes(); var std = []; @@ -430,42 +435,9 @@ } } }, - setChangeTMS (result, checked) { - var value = this.$refs.tree.getCheckedNodes(); - var std = []; - for (var i in value) { - std.push(value[i].id) - } - for (var i in result) { - var tile = result[i] - if (std.indexOf(tile.id) != -1) { - this.setAddLayers(tile) - - } else { - for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) { - var val_id = window.Viewer.imageryLayers._layers[i].name; - if (val_id == tile.cnName) { - window.Viewer.imageryLayers.remove( - window.Viewer.imageryLayers._layers[i] - ); - } - } - } - } - }, - getchilds (source) { - if (source.children) { - var child = source.children - for (var i in child) { - if (child[i].children) { - this.getchilds(child[i]) - } else { - this.childOption.push(child[i]) - } - } - } else { - this.childOption.push(source) - } + // 鍒囨崲DEM + setChangeDEM () { + // }, async setAddLayers (res) { if (res.serveType == "WMS") { -- Gitblit v1.9.3