From c0c034b3ef0fdf0fd9c802d5984dbd717db6817a Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期三, 06 九月 2023 17:54:55 +0800
Subject: [PATCH] 定制桌面.

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

diff --git a/src/Pool/TreeData.ts b/src/Pool/TreeData.ts
index 4d5c6a5..ca94c10 100644
--- a/src/Pool/TreeData.ts
+++ b/src/Pool/TreeData.ts
@@ -5,8 +5,10 @@
   addAreaTreeData,
   delAreaTreeData,
   updateAreaTreeData,
+  getGb28181Pool,
   refreshGB28181Tree,
-  updateCameraArea
+  updateCameraArea,
+  getCameraBaseImage
 } from '@/api/area'
 
 export default class TreeDataPool {
@@ -57,6 +59,11 @@
   // 鎬绘憚鍍忔満涓暟
   public gb28181ChildNodeCount: number
 
+  // 鍥芥爣鎽勫儚鏈烘睜鐨勫簳鍥�
+  public cameraNameForBaseImage: string
+  public gb28181CameraBaseImage: string
+  public baseImageLoading: boolean
+
   constructor() {
     this.openeds = [true, true, false]
     this.activeTreeData = []
@@ -91,6 +98,10 @@
     this.checkedTreeNode = []
     this.gb28181CheckedCount = 0
     this.gb28181ChildNodeCount = 0
+
+    this.cameraNameForBaseImage = ""
+    this.gb28181CameraBaseImage = ""
+    this.baseImageLoading = false
   }
 
   setVideoArr(index: number, value: object, vue: any): void {
@@ -104,6 +115,7 @@
       this.selectedNodes = [this.selectedNode.id]
       return
     }
+
     let _selected = this.selectedNodes
     function nodeFilter(node: any) {
       if (node.type === '4' && node.selected) {
@@ -115,6 +127,7 @@
         })
       }
     }
+
     if (this.selectedNode.cameraType === 0) {
       //鎽勫儚鏈烘爲
       if (this.treeActiveName == 'camera') {
@@ -128,6 +141,7 @@
         })
       }
     }
+
     if (this.selectedNode.cameraType === 1) {
       this.gb28181Data.forEach((n: any) => {
         nodeFilter(n)
@@ -148,9 +162,14 @@
       return
     }
 
+    let ids = []
     function nodeFilter(node: any) {
       if (node.type === '4' && (node.selected || node.checked)) {
-        _this.selectedNodes.push(node.id)
+        if (ids.indexOf(node.id) < 0) {
+          _this.selectedNodes.push(node.id)
+
+          ids.push(node.id)
+        }
       }
       if (node.children) {
         node.children.forEach((n: any) => {
@@ -452,8 +471,12 @@
     return arry.length
   }
 
-  async fetchVideosvrCameras() {
-    const rsp: any = await refreshGB28181Tree()
+  async fetchVideosvrCameras(update: Boolean) {
+    let fn = getGb28181Pool
+    if (update) {
+      fn = refreshGB28181Tree
+    }
+    const rsp: any = await fn()
 
     if (rsp && rsp.success) {
       this.selectedNode = {}
@@ -503,4 +526,22 @@
 
     return newTree
   }
+
+  async showBaseImage(node: any) {
+    this.baseImageLoading = true
+    this.gb28181CameraBaseImage = ""
+    this.cameraNameForBaseImage = node.name
+
+    try {
+      const rsp: any = await getCameraBaseImage({ id: node.id })
+
+      if (rsp && rsp.data) {
+        this.gb28181CameraBaseImage = rsp.data
+      }
+    } catch (error) {
+      console.log(error)
+    }
+
+    this.baseImageLoading = false
+  }
 }

--
Gitblit v1.8.0