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