From 649a012bd1f445afd51e3aad8e137d43c36434e0 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 05 八月 2022 11:48:21 +0800
Subject: [PATCH] 检索导出添加组织字段

---
 src/Pool/TreeData.ts |  114 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 60 insertions(+), 54 deletions(-)

diff --git a/src/Pool/TreeData.ts b/src/Pool/TreeData.ts
index 1ff4151..16b1ca3 100644
--- a/src/Pool/TreeData.ts
+++ b/src/Pool/TreeData.ts
@@ -9,9 +9,9 @@
   refreshGB28181Tree,
   updateCameraArea,
   getCameraBaseImage
-} from '@/api/area'
+} from "@/api/area"
 
-import {getClusterDevList} from '@/api/clusterManage'
+import { getClusterDevList } from "@/api/clusterManage"
 
 export default class TreeDataPool {
   public openeds: Array<boolean>
@@ -32,7 +32,7 @@
   public readonly: boolean
   public gbReadonly: boolean
   public multiple: boolean
-  public searchFrom: string = ''
+  public searchFrom: string = ""
   public showTreeBox: boolean
   public selectedNodes: Array<string>
   public selectedNode: any
@@ -70,6 +70,8 @@
   public clusterId: string
   public devId: string
 
+  // 璁板綍鎽勫儚鏈烘墍灞炵殑鐖惰妭鐐瑰悕绉�
+  public cameraParents: object
 
   constructor() {
     this.openeds = [true, true, false]
@@ -80,11 +82,11 @@
     this.treeDataPure = []
     this.gb28181DataPure = []
     this.clusterDataPure = []
-    this.videoArr = ['']
+    this.videoArr = [""]
     this.searchCamType = 0
-    this.searchInput = ''
-    this.activeVideoIndex = ''
-    this.activeVideoId = ''
+    this.searchInput = ""
+    this.activeVideoIndex = ""
+    this.activeVideoId = ""
     this.activeForceChoose = false
     this.showTreeBox = true
     this.readonly = true
@@ -92,15 +94,15 @@
     this.multiple = false
     this.selectedNodes = []
     this.selectedNode = {}
-    this.treeType = ''
+    this.treeType = ""
     this.foldNodeList = {}
-    this.treeActiveName = 'camera'
+    this.treeActiveName = "camera"
     this.searchLocalType = 0
 
     //1:鏆傚仠鐘舵�侊紱2锛氱瓑寰呯姸鎬�;3:缃伆
-    this.btnStaus = '3'
-    this.ctrlCameraId = ''
-    this.ctrlCameraName = ''
+    this.btnStaus = "3"
+    this.ctrlCameraId = ""
+    this.ctrlCameraName = ""
     this.zTree = false
     this.checkedTreeNode = []
     this.gb28181CheckedCount = 0
@@ -109,13 +111,11 @@
     this.cameraNameForBaseImage = ""
     this.gb28181CameraBaseImage = ""
     this.baseImageLoading = false
-    this.activeNode = ''
-    this.clusterId = ''
-    this.devId = ''
-
-
+    this.activeNode = ""
+    this.clusterId = ""
+    this.devId = ""
+    this.cameraParents = {}
   }
-
 
   setVideoArr(index: number, value: object, vue: any): void {
     vue.$set(this.videoArr, index, value)
@@ -130,9 +130,9 @@
     }
     let _selected = this.selectedNodes
     function nodeFilter(node: any) {
-      if (node.type === '4' && node.selected) {
+      if (node.type === "4" && node.selected) {
         _selected.push(node.id)
-        sessionStorage.setItem('cameraDevId',node.devId)
+        sessionStorage.setItem("cameraDevId", node.devId)
       }
       if (node.children) {
         node.children.forEach((n: any) => {
@@ -142,11 +142,11 @@
     }
     if (this.selectedNode.cameraType === 0) {
       //鎽勫儚鏈烘爲
-      if (this.treeActiveName == 'camera') {
+      if (this.treeActiveName == "camera") {
         this.treeData.forEach((n: any) => {
           nodeFilter(n)
         })
-      } else if (this.treeActiveName == 'cluster') {
+      } else if (this.treeActiveName == "cluster") {
         //闆嗙兢鏍�
         this.clusterData.forEach((n: any) => {
           nodeFilter(n)
@@ -174,8 +174,8 @@
     }
 
     function nodeFilter(node: any) {
-      if (node.type === '4' && (node.selected || node.checked)) {
-      sessionStorage.setItem("cameraDevId", node.devId);
+      if (node.type === "4" && (node.selected || node.checked)) {
+        sessionStorage.setItem("cameraDevId", node.devId)
         _this.selectedNodes.push(node.id)
       }
       if (node.children) {
@@ -247,7 +247,7 @@
   }
 
   getParent(id: string, isGB: boolean): string {
-    let parent = '0'
+    let parent = "0"
 
     function nodeFilter(node: Array<any>): any {
       for (let i = 0; i < node.length; i++) {
@@ -283,10 +283,10 @@
   }
 
   cleanTree(tree) {
-    if (tree === 'localTree') {
+    if (tree === "localTree") {
       this.treeData = JSON.parse(JSON.stringify(this.treeDataPure))
     }
-    if (tree === 'gb28182Tree') {
+    if (tree === "gb28182Tree") {
       this.gb28181Data = JSON.parse(JSON.stringify(this.gb28181DataPure))
     }
   }
@@ -295,7 +295,7 @@
     if (!node) {
       return
     }
-    node.forEach(n => {
+    node.forEach((n) => {
       // vue-js-tree 榛樿灞曞紑,鎺у埗閮ㄥ垎鎶樺彔. z-tree 榛樿鎶樺彔, 鎺у埗閮ㄥ垎灞曞紑
       if (this.foldNodeList[n.id]) {
         if (this.zTree) {
@@ -314,22 +314,22 @@
     if (!node) {
       return
     }
-    node.forEach(n => {
+    node.forEach((n) => {
       if (n.children && n.children.length > 0) {
         this.setDropDisable(n.children)
       } else {
-        if (n.type === '4') {
+        if (n.type === "4") {
           n.dropDisabled = true
         }
       }
     })
   }
 
-  sortTreeData(node) {
+  sortTreeData(node, parentName = "") {
     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) {
@@ -341,36 +341,41 @@
       }
     })
 
-    node.forEach(n => {
+    node.forEach((n) => {
       if (n.children && n.children.length > 0) {
         if (this.zTree) {
           n.open = true
         }
-        this.sortTreeData(n.children)
+        let pname = parentName === "" ? n.name : parentName + "/" + n.name
+        // console.log("pname", pname)
+        this.sortTreeData(n.children, pname)
+      } else {
+        if (n.type != "MENU") {
+          this.cameraParents[n.id] = parentName
+        }
       }
     })
   }
 
   async fetchLocalTree() {
     let params: any = {
-      parentId:"",
+      parentId: "",
       searchType: this.searchCamType,
-      cameraName: this.searchInput,
-    
+      cameraName: this.searchInput
+
       //isPlatform: 1
     }
-    if (this.searchFrom == 'cluster') {
+    if (this.searchFrom == "cluster") {
       params.isPlatform = 1
     }
-  
 
     const rsp: any = await getLocalCameraTree(params)
 
     if (rsp && rsp.success) {
-    
       this.treeData = rsp.data.treeMenu ? rsp.data.treeMenu : []
       if (this.treeData && this.treeData.length > 0) {
         this.sortTreeData(this.treeData)
+        // console.log("cameraParents", this.cameraParents)
       }
 
       // 璁剧疆绂佹鎷栨嫿鎽勫儚鏈哄埌鎽勫儚鏈鸿妭鐐�
@@ -414,6 +419,7 @@
   }
 
   async fetchTreeData() {
+    this.cameraParents = {}
     if (this.openeds[0]) {
       this.fetchLocalTree()
     }
@@ -425,7 +431,7 @@
   async add(name: string, parent: string) {
     await addAreaTreeData({
       name: name,
-      parentId: parent,
+      parentId: parent
     })
 
     this.fetchTreeData()
@@ -433,7 +439,7 @@
 
   async del(id: string) {
     await delAreaTreeData({
-      id: id,
+      id: id
     })
 
     this.fetchTreeData()
@@ -444,7 +450,7 @@
       id: id,
       name: name,
       parentId: this.getParent(id, isGb),
-      alias: alias,
+      alias: alias
     })
 
     this.fetchTreeData()
@@ -461,20 +467,20 @@
 
   getAllChildrenNodes(treeNode, arr) {
     for (var i = 0; i < treeNode.length; i++) {
-      var sonList = treeNode[i].children;
+      var sonList = treeNode[i].children
       if (!sonList) {
         if (treeNode[i].type == "camera") {
-          arr.push(treeNode[i]);
+          arr.push(treeNode[i])
 
           if (treeNode[i].checked) {
-            this.gb28181CheckedCount += 1;
+            this.gb28181CheckedCount += 1
           }
         }
       } else {
-        this.getAllChildrenNodes(sonList, arr);
+        this.getAllChildrenNodes(sonList, arr)
       }
     }
-    return arr;
+    return arr
   }
   countChildrenNodes(treeNode) {
     let arry = []
@@ -490,8 +496,8 @@
       fn = refreshGB28181Tree
     }
     const rsp: any = await fn({
-      clusterId:this.clusterId,
-      devId:this.devId,
+      clusterId: this.clusterId,
+      devId: this.devId
     })
 
     if (rsp && rsp.success) {
@@ -512,7 +518,7 @@
   }
 
   removeNoCheckedNode(nodes: Array<any>) {
-    for (let i = 0; i < nodes.length;) {
+    for (let i = 0; i < nodes.length; ) {
       if (!nodes[i].checked) {
         nodes.splice(i, 1)
         continue
@@ -527,7 +533,7 @@
 
   countCheckedNodes(nodes: Array<any>) {
     let count = 0
-    nodes.forEach(n => {
+    nodes.forEach((n) => {
       if (n.type == "camera") {
         count++
       }
@@ -548,10 +554,10 @@
     this.cameraNameForBaseImage = node.name
 
     try {
-      const rsp: any = await getCameraBaseImage({ 
+      const rsp: any = await getCameraBaseImage({
         id: node.id,
         clusterId: this.clusterId,
-        devId: this.devId,
+        devId: this.devId
       })
 
       if (rsp && rsp.data) {

--
Gitblit v1.8.0