From 98a6297b10a4b97c3022f84d3ba7908c178d9ee0 Mon Sep 17 00:00:00 2001
From: hanbaoshan <hanbaoshan@aiotlink.com>
Date: 星期二, 20 十月 2020 10:30:10 +0800
Subject: [PATCH] 应用中心安装提示bug修复

---
 src/Pool/TreeData.ts |   75 ++++++++++++++++++++++++++-----------
 1 files changed, 52 insertions(+), 23 deletions(-)

diff --git a/src/Pool/TreeData.ts b/src/Pool/TreeData.ts
index 0e77acd..2008d98 100644
--- a/src/Pool/TreeData.ts
+++ b/src/Pool/TreeData.ts
@@ -1,6 +1,7 @@
 import {
   getLocalCameraTree,
   getGB28181CameraTree,
+  getClusterTree,
   addAreaTreeData,
   delAreaTreeData,
   updateAreaTreeData,
@@ -16,9 +17,11 @@
 export default class TreeDataPool {
   public openeds: Array<boolean>;
   public treeData: Array<object>;
+  public clusterData: Array<object>;
   public gb28181Data: Array<object>;
   public treeDataPure: Array<object>;
   public gb28181DataPure: Array<object>;
+  public clusterDataPure: Array<object>;
   public videoArr: Array<string | undefined | object>;
   public searchCamType: number;
   public searchInput: string;
@@ -64,8 +67,10 @@
     this.openeds = [true, true, false];
     this.treeData = [];
     this.gb28181Data = [];
+    this.clusterData = [];
     this.treeDataPure = [];
     this.gb28181DataPure = [];
+    this.clusterDataPure = [];
     this.videoArr = [""];
     this.searchCamType = 0;
     this.searchInput = "";
@@ -106,7 +111,6 @@
       this.selectedNodes = [this.selectedNode.id];
       return;
     }
-
     let _selected = this.selectedNodes;
     function nodeFilter(node: any) {
       if (node.type === "4" && node.selected) {
@@ -125,6 +129,11 @@
     }
     if (this.selectedNode.cameraType === 1) {
       this.gb28181Data.forEach((n: any) => {
+        nodeFilter(n);
+      });
+    }
+    if (this.selectedNode.cameraType === -1) {
+      this.clusterData.forEach((n: any) => {
         nodeFilter(n);
       });
     }
@@ -262,6 +271,29 @@
     })
   }
 
+  sortTreeData(node) {
+    if (!node) {
+      return
+    }
+    node.sort(function (obj1: any, obj2: any) {
+      var val1 = obj1.name;
+      var val2 = obj2.name;
+      if (val1 < val2) {
+        return -1;
+      } else if (val1 > val2) {
+        return 1;
+      } else {
+        return 0;
+      }
+    });
+
+    node.forEach(n => {
+      if (n.children && n.children.length > 0) {
+        this.sortTreeData(n.children)
+      }
+    })
+  }
+
   async fetchLocalTree() {
     const rsp: any = await getLocalCameraTree({
       searchType: this.searchCamType,
@@ -271,23 +303,29 @@
     if (rsp && rsp.success) {
       this.treeData = rsp.data ? rsp.data : []
       if (this.treeData && this.treeData.length > 0) {
-        this.treeData.sort(function (obj1: any, obj2: any) {
-          var val1 = obj1.id;
-          var val2 = obj2.id;
-          if (val1 < val2) {
-            return -1;
-          } else if (val1 > val2) {
-            return 1;
-          } else {
-            return 0;
-          }
-        });
+        this.sortTreeData(this.treeData)
       }
 
       // 璁剧疆绂佹鎷栨嫿鎽勫儚鏈哄埌鎽勫儚鏈鸿妭鐐�
       this.setDropDisable(this.treeData)
       this.treeDataPure = JSON.parse(JSON.stringify(this.treeData));
       this.isFold(this.treeData)
+    }
+  }
+
+  async fetchClusterTree (){
+    const rsp: any = await getClusterTree({
+      searchType: this.searchCamType,
+      cameraName: this.searchInput
+    });
+    if(rsp && rsp.success){
+      console.log(rsp.data);
+      this.clusterData = rsp.data ? rsp.data : []
+      if(this.clusterData && this.clusterData.length > 0){
+        this.sortTreeData(this.clusterData)
+      }
+      this.clusterDataPure = JSON.parse(JSON.stringify(this.clusterData));
+      this.isFold(this.clusterData)
     }
   }
 
@@ -300,17 +338,7 @@
     if (rsp && rsp.success) {
       this.gb28181Data = rsp.data ? rsp.data : []
       if (this.gb28181Data && this.gb28181Data.length > 0) {
-        this.gb28181Data.sort(function (obj1: any, obj2: any) {
-          var val1 = obj1.id;
-          var val2 = obj2.id;
-          if (val1 < val2) {
-            return -1;
-          } else if (val1 > val2) {
-            return 1;
-          } else {
-            return 0;
-          }
-        });
+        this.sortTreeData(this.gb28181Data)
       }
 
       this.gb28181DataPure = JSON.parse(JSON.stringify(this.gb28181Data));
@@ -325,6 +353,7 @@
     if (this.openeds[1]) {
       this.fetchGbTree()
     }
+
     this.findAllFile({})
   }
 

--
Gitblit v1.8.0