From 4e3d77dcbe421a4d6611ebcdd1ac3165cb36ad4b Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期一, 06 二月 2023 14:59:33 +0800
Subject: [PATCH] 系统界面翻新,回车登录,综合展示菜单重复

---
 src/views/Tools/LayerTree.vue |  197 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 127 insertions(+), 70 deletions(-)

diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue
index e5ad2fd..f73c16e 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -116,8 +116,10 @@
 </template>
 
 <script>
+import { image_layer } from '../../assets/js/index.js';
 import ImageWMS from 'ol/source/ImageWMS';
 import Image from 'ol/layer/Image';
+import { perms_selectLayers } from '../../api/api.js'
 export default {
   name: 'tree',
   data() {
@@ -142,37 +144,7 @@
         'm_sitepoint',
       ],
       treeData: [
-        {
-          id: 1,
-          label: 'LF',
-          isEdit: false,
-          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: {
         children: 'children',
@@ -317,7 +289,8 @@
       console.log('tree drop: ', dropNode.label, dropType);
     },
     handleCheckChange(data, checked, indeterminate) {
-      if (data.children != null) return;
+
+      if (data.type != 2) return;
       var std = [];
       var layers_ol = window.map.getAllLayers();
       for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
@@ -330,6 +303,7 @@
           img_layer.show = checked;
         }
       }
+
       if (std.length == 0 && checked == true) {
         this.setAddLayers(data)
       }
@@ -343,7 +317,7 @@
       }
     },
     setAddLayers(res) {
-    
+
       let layerWMS = new Cesium.WebMapServiceImageryProvider({
         url: geoServerURl,
         layers: res.resource,
@@ -355,21 +329,113 @@
       layerWMS.name = res.label;
       window.Viewer.imageryLayers.addImageryProvider(layerWMS);
 
-      var layer2 = new Image({
-        name: res.label,
-        source: new ImageWMS({
-          crossOrigin: 'anonymous',
-          url: geoServerURl,
 
-          params: {
-            FORMAT: 'image/png',
-            VERSION: '1.1.1',
-            LAYERS: res.resource,
-          },
-        }),
-      });
-      window.map.addLayer(layer2);
     },
+    async layersStart() {
+      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.setAddLayers(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])
+          }
+        }
+      }
+      this.treeData = layer_groups;
+      this.$refs.tree.setCheckedKeys(std);
+    },
+    async treelayersStart() {
+      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)
+          }
+        }
+      }
+      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])
+          }
+        }
+      }
+      this.treeData = layer_groups;
+
+      for (var i in data.result) {
+        if (data.result[i].type == 2 && data.result[i].url != null) {
+          for (var j = 0; j < window.Viewer.imageryLayers._layers.length; j++) {
+            var val_id = window.Viewer.imageryLayers._layers[j];
+            if (val_id.show == true) {
+
+              if (val_id.imageryProvider.name == data.result[i].cnName) {
+                std.push(data.result[i].id);
+              }
+            }
+          }
+        }
+      }
+      this.$refs.tree.setCheckedKeys(std);
+
+    }
   },
   watch: {
     filterText(val) {
@@ -377,34 +443,16 @@
     },
   },
   mounted() {
-    var std = [];
-    var val = this.treeData[0].children;
+
 
     if (this.$store.state.showAllLayers == true) {
-      for (var j = 0; j < val.length; j++) {
-        if (val[j].id != 13 && val[j].id != 14) {
-          std.push(val[j].id);
-          this.setAddLayers(val[j]);
-        }
-
-      }
+      this.layersStart();
       this.$store.state.showAllLayers = false;
-
-
     } else {
-      for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
-        var val_id = window.Viewer.imageryLayers._layers[i];
-        if (val_id.show == true) {
-          for (var j = 0; j < val.length; j++) {
-            if (val_id.imageryProvider.name == val[j].label) {
-              std.push(val[j].id);
-            }
-          }
-        }
-      }
-    }
+      this.treelayersStart();
 
-    this.$refs.tree.setCheckedKeys(std);
+    }
+     
   },
 };
 </script>
@@ -605,7 +653,6 @@
   display: block;
   z-index: 10000;
 
-  background-color: #fff;
   padding: 10px 0;
   border: 1px solid #ebeef5;
   border-radius: 4px;
@@ -634,4 +681,14 @@
   color: #fff !important;
   border: 1px solid !important;
 }
+/deep/.el-tree .el-tree-node__content:hover {
+  background-color: transparent !important;
+}
+/deep/.el-tree {
+  color: white !important;
+  background: transparent !important;
+}
+/deep/.el-tree-node:focus > .el-tree-node__content {
+  background: transparent !important;
+}
 </style>

--
Gitblit v1.9.3