From ece5b7b7d24f85a3253cf722291e69ca7a406192 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 16 八月 2022 13:05:18 +0800 Subject: [PATCH] 完善大屏 --- src/Pool/TreeData.ts | 115 +++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 74 insertions(+), 41 deletions(-) diff --git a/src/Pool/TreeData.ts b/src/Pool/TreeData.ts index 27be295..16b1ca3 100644 --- a/src/Pool/TreeData.ts +++ b/src/Pool/TreeData.ts @@ -9,7 +9,9 @@ refreshGB28181Tree, updateCameraArea, getCameraBaseImage -} from '@/api/area' +} from "@/api/area" + +import { getClusterDevList } from "@/api/clusterManage" export default class TreeDataPool { public openeds: Array<boolean> @@ -30,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 @@ -64,6 +66,13 @@ public gb28181CameraBaseImage: string public baseImageLoading: boolean + public activeNode: string + public clusterId: string + public devId: string + + // 璁板綍鎽勫儚鏈烘墍灞炵殑鐖惰妭鐐瑰悕绉� + public cameraParents: object + constructor() { this.openeds = [true, true, false] this.activeTreeData = [] @@ -73,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 @@ -85,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 @@ -102,6 +111,10 @@ this.cameraNameForBaseImage = "" this.gb28181CameraBaseImage = "" this.baseImageLoading = false + this.activeNode = "" + this.clusterId = "" + this.devId = "" + this.cameraParents = {} } setVideoArr(index: number, value: object, vue: any): void { @@ -117,8 +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) } if (node.children) { node.children.forEach((n: any) => { @@ -128,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) @@ -160,7 +174,8 @@ } function nodeFilter(node: any) { - if (node.type === '4' && (node.selected || node.checked)) { + if (node.type === "4" && (node.selected || node.checked)) { + sessionStorage.setItem("cameraDevId", node.devId) _this.selectedNodes.push(node.id) } if (node.children) { @@ -232,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++) { @@ -268,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)) } } @@ -280,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) { @@ -299,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) { @@ -326,31 +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: "", searchType: this.searchCamType, 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 ? rsp.data : [] + this.treeData = rsp.data.treeMenu ? rsp.data.treeMenu : [] if (this.treeData && this.treeData.length > 0) { this.sortTreeData(this.treeData) + // console.log("cameraParents", this.cameraParents) } // 璁剧疆绂佹鎷栨嫿鎽勫儚鏈哄埌鎽勫儚鏈鸿妭鐐� @@ -377,12 +402,13 @@ async fetchGbTree() { const rsp: any = await getGB28181CameraTree({ + parentId: "", searchType: this.searchCamType, cameraName: this.searchInput }) if (rsp && rsp.success) { - this.gb28181Data = rsp.data ? rsp.data : [] + this.gb28181Data = rsp.data.treeMenu ? rsp.data.treeMenu : [] if (this.gb28181Data && this.gb28181Data.length > 0) { this.sortTreeData(this.gb28181Data) } @@ -393,6 +419,7 @@ } async fetchTreeData() { + this.cameraParents = {} if (this.openeds[0]) { this.fetchLocalTree() } @@ -430,7 +457,7 @@ } async refreshGB28181() { - await refreshGB28181Tree() + await refreshGB28181Tree({}) // this.fetchGbTree() } @@ -440,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 = [] @@ -468,7 +495,10 @@ if (update) { fn = refreshGB28181Tree } - const rsp: any = await fn() + const rsp: any = await fn({ + clusterId: this.clusterId, + devId: this.devId + }) if (rsp && rsp.success) { this.selectedNode = {} @@ -481,15 +511,14 @@ this.setDropDisable(this.treeData) this.isFold(this.treeData) - this.activeTreeData = this.treeData - - this.gb28181CheckedCount = 0; + this.gb28181CheckedCount = 0 this.gb28181ChildNodeCount = this.countChildrenNodes(this.treeData) + this.activeTreeData = this.treeData } } 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 @@ -504,7 +533,7 @@ countCheckedNodes(nodes: Array<any>) { let count = 0 - nodes.forEach(n => { + nodes.forEach((n) => { if (n.type == "camera") { count++ } @@ -525,7 +554,11 @@ this.cameraNameForBaseImage = node.name try { - const rsp: any = await getCameraBaseImage({ id: node.id }) + const rsp: any = await getCameraBaseImage({ + id: node.id, + clusterId: this.clusterId, + devId: this.devId + }) if (rsp && rsp.data) { this.gb28181CameraBaseImage = rsp.data -- Gitblit v1.8.0