From 171558c783772979546d5c0285809165c273fc0e Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期四, 04 二月 2021 14:36:10 +0800
Subject: [PATCH] 添加giant tree 组件. 基于ztree

---
 src/Pool/TreeData.ts |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/src/Pool/TreeData.ts b/src/Pool/TreeData.ts
index cbb1fde..e0b9b0d 100644
--- a/src/Pool/TreeData.ts
+++ b/src/Pool/TreeData.ts
@@ -60,6 +60,8 @@
   //璁板綍澶嶅埗鐨勬憚鍍忔満name
   public ctrlCameraName: string
 
+  public zTree: boolean
+
   constructor() {
     this.openeds = [true, true, false]
     this.treeData = []
@@ -95,6 +97,7 @@
     this.localTotal = 0
     this.ctrlCameraId = ''
     this.ctrlCameraName = ''
+    this.zTree = false
   }
 
   setVideoArr(index: number, value: object, vue: any): void {
@@ -143,6 +146,30 @@
     //     nodeFilter(n);
     //   });
     // }
+  }
+
+  updateZTreeCheckNodes(checkedNodes) {
+    let _this = this
+    _this.selectedNodes = []
+    if (!_this.multiple) {
+      _this.selectedNodes = [checkedNodes.id]
+      return
+    }
+
+    function nodeFilter(node: any) {
+      if (node.type === '4' && (node.selected || node.checked)) {
+        _this.selectedNodes.push(node.id)
+      }
+      if (node.children) {
+        node.children.forEach((n: any) => {
+          nodeFilter(n)
+        })
+      }
+    }
+
+    checkedNodes.forEach((n: any) => {
+      nodeFilter(n)
+    })
   }
 
   getCameraInfoByIp(ipaddr) {
@@ -253,8 +280,13 @@
       return
     }
     node.forEach(n => {
+      // vue-js-tree 榛樿灞曞紑,鎺у埗閮ㄥ垎鎶樺彔. z-tree 榛樿鎶樺彔, 鎺у埗閮ㄥ垎灞曞紑
       if (this.foldNodeList[n.id]) {
-        n.opened = false
+        if (this.zTree) {
+          n.open = true
+        } else {
+          n.opened = false
+        }
       }
       if (n.children && n.children.length > 0) {
         this.isFold(n.children)
@@ -281,7 +313,7 @@
     if (!node) {
       return
     }
-    node.sort(function(obj1: any, obj2: any) {
+    node.sort(function (obj1: any, obj2: any) {
       var val1 = obj1.name
       var val2 = obj2.name
       if (val1 < val2) {
@@ -323,7 +355,7 @@
       this.isFold(this.treeData)
     }
   }
-  
+
   async fetchClusterTree() {
     const rsp: any = await getClusterTree({
       searchType: this.searchCamType,
@@ -402,7 +434,7 @@
   }
 
   async findAllFile(params: any) {
-    ;(params.fileName = this.searchInput), (params.type = this.searchLocalType)
+    ; (params.fileName = this.searchInput), (params.type = this.searchLocalType)
     params.page = this.localCurrentPage
     params.size = this.localPageSize
     let res: any = await findAllFile(params)

--
Gitblit v1.8.0