From 9c803f20cc05395bac2d3386accfe230210c07dc Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期一, 19 十二月 2022 20:58:31 +0800
Subject: [PATCH] 1

---
 src/views/Tools/LayerTree.vue |  114 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 92 insertions(+), 22 deletions(-)

diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue
index 4aeadb2..0c2d1a8 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -20,6 +20,8 @@
       @node-drop="handleDrop"
       @node-contextmenu="rightClick"
       :filter-node-method="filterNode"
+      @check-change="handleCheckChange"
+      :default-checked-keys="handleTreeCheck"
       draggable
       :allow-drop="allowDrop"
       :allow-drag="allowDrag"
@@ -106,32 +108,46 @@
       appendNodetitle: '',
       maxexpandId: 4,
       rightClickMenuStyle: {},
+      handleTreeCheck: [],
       dialogVisible: false,
       addFormServer: {},
+      layerId: [
+        'm_pipeline',
+        'th_strategic_channel',
+        'bs_project',
+        'm_sitepoint',
+      ],
       treeData: [
         {
           id: 1,
-          label: '褰卞儚',
+          label: 'LF',
           isEdit: false,
-          children: [],
-        },
-        {
-          id: 2,
-          label: '鍦板舰',
-          isEdit: false,
-          children: [],
-        },
-        {
-          id: 3,
-          label: '妯″瀷',
-          isEdit: false,
-          children: [],
-        },
-        {
-          id: 4,
-          label: '鐭㈤噺',
-          isEdit: false,
-          children: [],
+          children: [
+            {
+              id: 11,
+              label: '绠¢亾涓績绾�',
+              resource: 'LF:m_pipeline',
+              isEdit: false,
+            },
+            {
+              id: 12,
+              label: '鎴樼暐閫氶亾',
+              resource: 'LF:th_strategic_channel',
+              isEdit: false,
+            },
+            {
+              id: 13,
+              label: '椤圭洰',
+              resource: 'LF:bs_project',
+              isEdit: false,
+            },
+            {
+              id: 14,
+              label: '绔欏満',
+              resource: 'LF:m_sitepoint',
+              isEdit: false,
+            },
+          ],
         },
       ],
       defaultProps: {
@@ -190,6 +206,15 @@
     // 榧犳爣宸﹀嚮浜嬩欢
     handleLeftclick(data, node) {
       this.foo();
+      if (node.checked == true) {
+        for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
+          var val_id =
+            window.Viewer.imageryLayers._layers[i].imageryProvider.name;
+          if (val_id == data.label) {
+            const img_layer = window.Viewer.imageryLayers._layers[i];
+          }
+        }
+      }
     },
     //  鍙栨秷榧犳爣鐩戝惉浜嬩欢 鑿滃崟鏍�
     foo() {
@@ -223,7 +248,6 @@
       this.addFormServer = {};
     },
     setAddServer() {
-      debugger;
       var data = this.addFormServer;
       data.id = Math.ceil(Math.random() * 100);
       this.$refs.tree.append(data, this.currentNode);
@@ -270,13 +294,59 @@
     handleDrop(draggingNode, dropNode, dropType, ev) {
       console.log('tree drop: ', dropNode.label, dropType);
     },
+    handleCheckChange(data, checked, indeterminate) {
+      if (data.children != null) return;
+      var std = [];
+      if (checked == true) {
+        for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
+          var val_id =
+            window.Viewer.imageryLayers._layers[i].imageryProvider.name;
+          if (val_id == data.label) {
+            std.push(data.label);
+          }
+        }
+        if (std.length == 0) {
+          let layerWMS = new Cesium.WebMapServiceImageryProvider({
+            url: geoServerURl,
+            layers: data.resource,
+            parameters: {
+              transparent: true,
+              format: 'image/png',
+            },
+          });
+          layerWMS.name = data.label;
+          window.Viewer.imageryLayers.addImageryProvider(layerWMS);
+        }
+      } else {
+        for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
+          var val_id =
+            window.Viewer.imageryLayers._layers[i].imageryProvider.name;
+          if (val_id == data.label) {
+            const img_layer = window.Viewer.imageryLayers._layers[i];
+            window.Viewer.imageryLayers.remove(img_layer);
+          }
+        }
+      }
+    },
   },
   watch: {
     filterText(val) {
       this.$refs.tree.filter(val);
     },
   },
-  mounted() {},
+  mounted() {
+    var std = [];
+    var val = this.treeData[0].children;
+    for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
+      var val_id = window.Viewer.imageryLayers._layers[i].imageryProvider.name;
+      for (var j = 0; j < val.length; j++) {
+        if (val_id == val[j].label) {
+          std.push(val[j].id);
+        }
+      }
+    }
+    this.$refs.tree.setCheckedKeys(std);
+  },
 };
 </script>
 <style scoped lang="less">

--
Gitblit v1.9.3