From c99cad106ef5be9f818e45d385dfdcec29ce19e5 Mon Sep 17 00:00:00 2001
From: hanbaoshan <hanbaoshan@aiotlink.com>
Date: 星期四, 03 十二月 2020 16:52:24 +0800
Subject: [PATCH] 修复绘制多边形撤销错误的bug

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

diff --git a/src/Pool/TreeData.ts b/src/Pool/TreeData.ts
index 0e77acd..7ab436f 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;
@@ -28,6 +31,7 @@
   public readonly: boolean;
   public gbReadonly: boolean;
   public multiple: boolean;
+  public searchFrom: string = '';
   public showTreeBox: boolean;
   public selectedNodes: Array<string>;
   public selectedNode: any;
@@ -64,8 +68,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,8 +112,8 @@
       this.selectedNodes = [this.selectedNode.id];
       return;
     }
-
     let _selected = this.selectedNodes;
+    console.log(this.selectedNodes)
     function nodeFilter(node: any) {
       if (node.type === "4" && node.selected) {
         _selected.push(node.id);
@@ -119,20 +125,33 @@
       }
     }
     if (this.selectedNode.cameraType === 0) {
-      this.treeData.forEach((n: any) => {
-        nodeFilter(n);
-      });
+      //鎽勫儚鏈烘爲
+      if(this.treeActiveName == "camera"){
+        this.treeData.forEach((n: any) => {
+          nodeFilter(n);
+        });
+      }else if(this.treeActiveName == "cluster"){
+        //闆嗙兢鏍�
+        this.clusterData.forEach((n: any) => {
+          nodeFilter(n);
+        });
+      }
     }
     if (this.selectedNode.cameraType === 1) {
       this.gb28181Data.forEach((n: any) => {
         nodeFilter(n);
       });
     }
+    // if (this.selectedNode.cameraType === -1) {
+    //   this.clusterData.forEach((n: any) => {
+    //     nodeFilter(n);
+    //   });
+    // }
   }
 
   getCameraInfoByIp(ipaddr) {
     let camera = null;
-
+ 
     function nodeFilter(node: any) {
       if (node.rtsp && node.rtsp.indexOf(ipaddr) != -1) {
         camera = node;
@@ -262,32 +281,66 @@
     })
   }
 
-  async fetchLocalTree() {
-    const rsp: any = await getLocalCameraTree({
-      searchType: this.searchCamType,
-      cameraName: this.searchInput
+  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() {
+    let params: any = {
+      searchType: this.searchCamType,
+      cameraName: this.searchInput,
+      //isPlatform: 1
+    };
+    if (this.searchFrom == 'cluster') {
+      params.isPlatform = 1
+    }
+    const rsp: any = await getLocalCameraTree(params);
 
     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 +353,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 +368,7 @@
     if (this.openeds[1]) {
       this.fetchGbTree()
     }
+
     this.findAllFile({})
   }
 

--
Gitblit v1.8.0