From 94174101b5e3c7b952a5bf5c2626f0a8f2ead3dd Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期四, 09 三月 2023 14:44:10 +0800 Subject: [PATCH] 在线制图修改 --- src/views/exportMap/index.vue | 149 ++++++++++++++++++++++++------------------------- 1 files changed, 72 insertions(+), 77 deletions(-) diff --git a/src/views/exportMap/index.vue b/src/views/exportMap/index.vue index 8b48309..1e24f73 100644 --- a/src/views/exportMap/index.vue +++ b/src/views/exportMap/index.vue @@ -324,9 +324,12 @@ value: "A4", treeData: [], arrList: [], + layername: [ + 1, 2, 5, 13, 15, 31 + ], defaultProps: { children: "children", - label: "label", + label: "cnName", }, draw: null, vector: null, @@ -338,6 +341,7 @@ pageIndex: 1, }, count: 0, + } }, @@ -347,88 +351,67 @@ this.showMapLayer() }, methods: { + setTreeData(source) { + let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 + return cloneData.filter((father) => { + // 寰幆鎵�鏈夐」 + let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁 + branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� + // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛� + // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋� + return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� + }); + }, async LayerStart() { const data = await perms_selectLayers() if (data.code != 200) { return this.$message.error("鍥惧眰鍒楄〃鏌ヨ澶辫触") } - var std = [] - var layer_list = [] - var layer_groups = [] - for (var i in data.result) { - if (data.result[i].type == 1) { - layer_groups.push({ - id: data.result[i].id, - label: data.result[i].cnName, - type: data.result[i].type, - isEdit: false, - children: [], - }) - } else if (data.result[i].type == 2) { - if (data.result[i].url != null) { - var layer_entity = { - id: data.result[i].id, - pid: data.result[i].pid, - label: data.result[i].cnName, - resource: data.result[i].url, - type: data.result[i].type, - isEdit: false, - } - layer_list.push(layer_entity) - if (data.result[i].isShow == 1) { - std.push(data.result[i].id) - this.tableData.push({ - name: layer_entity.label, - }) - this.showMapLayer(layer_entity) - } - } - } - } - for (var i in layer_list) { - for (var j in layer_groups) { - if (layer_list[i].pid === layer_groups[j].id) { - layer_groups[j].children.push(layer_list[i]) - } - } - } - layer_groups = layer_groups.filter((res) => { - if (res.children != null && res.children.length != 0) { - return res - } - }) - this.treeData = layer_groups; + var res = data.result; - // for (var i in data.result) { - // if (data.result[i].type == 2 && data.result[i].url != null) { - // for (var j = 0; j < window.mapView.imageryLayers._layers.length; j++) { - // var val_id = window.mapView.imageryLayers._layers[j] - // if (val_id.show == true) { - // if (val_id.imageryProvider.name == data.result[i].cnName) { - // std.push(data.result[i].id) - // } - // } - // } - // } - // } + var val = []; + var std = []; + for (var i in res) { + var str = res[i]; + + if (str.type == 1 && this.layername.indexOf(str.id) != -1) { + val.push(str) + } else if (str.url != null && str.type == 2 && this.layername.indexOf(str.pid) != -1) { + if (str.isShow == 1) { + + std.push(str.id) + this.showMapLayer(str) + this.tableData.push({ + name: str.cnName, + ename: str.enName, + }) + } + val.push(str) + } + } + var res = this.setTreeData(val); + this.treeData = res; this.$refs.tree.setCheckedKeys(std) }, showMapLayer(val) { if (val == undefined) return; - var layer2 = new Image({ - name: val.label, - source: new ImageWMS({ - crossOrigin: "anonymous", - url: geoServerURl, + if (val.serveType == "WMS") { + var layer2 = new Image({ + name: val.cnName, + source: new ImageWMS({ + crossOrigin: "anonymous", + url: geoServerURl, - params: { - FORMAT: "image/png", - VERSION: "1.1.1", - LAYERS: val.resource, - }, - }), - }) - mapView.addLayer(layer2) + params: { + FORMAT: "image/png", + VERSION: "1.1.1", + LAYERS: val.url, + }, + }), + }) + mapView.addLayer(layer2) + } + }, showLeftMenu(res) { switch (res) { @@ -597,7 +580,7 @@ this.loading = true var val_data = [] for (var i in this.tableData) { - val_data.push(this.tableData[i].name) + val_data.push(this.tableData[i].ename) } if (this.isActive) { val_data.push("鐭㈤噺鍥�") @@ -612,20 +595,22 @@ handleClose() { }, handleTreeNodeClick(data, nodes) { if (data.children != null) return + var layers = mapView.getAllLayers() for (var i in layers) { var layer = layers[i] var str = 0 - if (layer.values_.name == data.label) { + if (layer.values_.name == data.cnName) { layer.setVisible(nodes) //鏄剧ず鍥惧眰 if (nodes == true) { str++ this.tableData.push({ - name: data.label, + name: data.cnName, + ename: data.enName }) } else { this.tableData.some((item, i) => { - if (item.name === data.label) { + if (item.name === data.cnName) { this.tableData.splice(i, 1) } }) @@ -636,7 +621,8 @@ if (str == 0 && nodes == true) { this.showMapLayer(data) this.tableData.push({ - name: data.label, + name: data.cnName, + ename: data.enName, }) } @@ -796,5 +782,14 @@ /deep/.el-form-item { margin-top: 10px; } + /deep/ .el-tree-node { + .is-leaf + .el-checkbox .el-checkbox__inner { + display: inline-block; + } + + .el-checkbox .el-checkbox__inner { + display: none; + } + } } </style> -- Gitblit v1.9.3