| | |
| | | addAreaTreeData, |
| | | delAreaTreeData, |
| | | updateAreaTreeData, |
| | | getGb28181Pool, |
| | | refreshGB28181Tree, |
| | | updateCameraArea |
| | | } from "@/api/area"; |
| | | import { |
| | | findAllFile, |
| | | show, |
| | | changeEnable |
| | | } from "@/api/localVedio"; |
| | | updateCameraArea, |
| | | getCameraBaseImage |
| | | } from '@/api/area' |
| | | |
| | | 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; |
| | | public activeVideoIndex: number | string; |
| | | public activeVideoId: number | string; |
| | | public activeForceChoose: boolean; |
| | | public readonly: boolean; |
| | | public gbReadonly: boolean; |
| | | public multiple: boolean; |
| | | public showTreeBox: boolean; |
| | | public selectedNodes: Array<string>; |
| | | public selectedNode: any; |
| | | public openeds: Array<boolean> |
| | | public activeTreeData: Array<object> |
| | | |
| | | 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 |
| | | public activeVideoIndex: number | string |
| | | public activeVideoId: number | string |
| | | public activeForceChoose: boolean |
| | | public readonly: boolean |
| | | public gbReadonly: boolean |
| | | public multiple: boolean |
| | | public searchFrom: string = '' |
| | | public showTreeBox: boolean |
| | | public selectedNodes: Array<string> |
| | | public selectedNode: any |
| | | // 记录当前操作的树 |
| | | public treeType: string; |
| | | public treeType: string |
| | | // 记录收起的节点 |
| | | public foldNodeList: object; |
| | | public foldNodeList: object |
| | | //记录左侧tab:activeName |
| | | public treeActiveName: string; |
| | | //本地视频:视频分析处理 |
| | | public vedioAnaliyseSwitch: boolean; |
| | | //本地视频列表 |
| | | public localVedioList: Array<any>; |
| | | //本地视频当前页 |
| | | public localCurrentPage: number; |
| | | //本地视频每页查询20条 |
| | | public localPageSize: number; |
| | | //本地视频总条数 |
| | | public localTotal: number; |
| | | //勾选的本地视频 |
| | | public checkedLocalVedio: Array<any>; |
| | | //当前选中的本地视频 |
| | | public clickLocalVideo: object; |
| | | public treeActiveName: string |
| | | //控制开始、暂停按钮显示状态 |
| | | public btnStaus: string; |
| | | public btnStaus: string |
| | | //本地视频类型 |
| | | public searchLocalType: number; |
| | | public searchLocalType: number |
| | | //记录复制的摄像机id |
| | | public ctrlCameraId: string; |
| | | public ctrlCameraId: string |
| | | //记录复制的摄像机name |
| | | public ctrlCameraName: string; |
| | | public ctrlCameraName: string |
| | | |
| | | // 是否使用ztree |
| | | public zTree: boolean |
| | | |
| | | public checkedTreeNode: Array<object> |
| | | |
| | | // 选中的摄像机个数 |
| | | public gb28181CheckedCount: number |
| | | // 总摄像机个数 |
| | | public gb28181ChildNodeCount: number |
| | | |
| | | // 国标摄像机池的底图 |
| | | public cameraNameForBaseImage: string |
| | | public gb28181CameraBaseImage: string |
| | | public baseImageLoading: boolean |
| | | |
| | | constructor() { |
| | | this.openeds = [true, true, false]; |
| | | this.treeData = []; |
| | | this.gb28181Data = []; |
| | | this.clusterData = []; |
| | | this.treeDataPure = []; |
| | | this.gb28181DataPure = []; |
| | | this.clusterDataPure = []; |
| | | this.videoArr = [""]; |
| | | this.searchCamType = 0; |
| | | this.searchInput = ""; |
| | | this.activeVideoIndex = ""; |
| | | this.activeVideoId = ""; |
| | | this.activeForceChoose = false; |
| | | this.showTreeBox = true; |
| | | this.readonly = true; |
| | | this.gbReadonly = true; |
| | | this.multiple = false; |
| | | this.selectedNodes = []; |
| | | this.selectedNode = {}; |
| | | this.treeType = ""; |
| | | this.foldNodeList = {}; |
| | | this.vedioAnaliyseSwitch = false; |
| | | this.treeActiveName = "camera"; |
| | | this.searchLocalType = 0; |
| | | this.localVedioList = []; |
| | | this.checkedLocalVedio = []; |
| | | this.clickLocalVideo = {}; |
| | | this.openeds = [true, true, false] |
| | | this.activeTreeData = [] |
| | | this.treeData = [] |
| | | this.gb28181Data = [] |
| | | this.clusterData = [] |
| | | this.treeDataPure = [] |
| | | this.gb28181DataPure = [] |
| | | this.clusterDataPure = [] |
| | | this.videoArr = [''] |
| | | this.searchCamType = 0 |
| | | this.searchInput = '' |
| | | this.activeVideoIndex = '' |
| | | this.activeVideoId = '' |
| | | this.activeForceChoose = false |
| | | this.showTreeBox = true |
| | | this.readonly = true |
| | | this.gbReadonly = true |
| | | this.multiple = false |
| | | this.selectedNodes = [] |
| | | this.selectedNode = {} |
| | | this.treeType = '' |
| | | this.foldNodeList = {} |
| | | this.treeActiveName = 'camera' |
| | | this.searchLocalType = 0 |
| | | |
| | | //1:暂停状态;2:等待状态;3:置灰 |
| | | this.btnStaus = "3"; |
| | | this.localCurrentPage = 1; |
| | | this.localPageSize = 20; |
| | | this.localTotal = 0; |
| | | this.ctrlCameraId = ""; |
| | | this.ctrlCameraName = ""; |
| | | this.btnStaus = '3' |
| | | this.ctrlCameraId = '' |
| | | this.ctrlCameraName = '' |
| | | this.zTree = false |
| | | this.checkedTreeNode = [] |
| | | this.gb28181CheckedCount = 0 |
| | | this.gb28181ChildNodeCount = 0 |
| | | |
| | | this.cameraNameForBaseImage = "" |
| | | this.gb28181CameraBaseImage = "" |
| | | this.baseImageLoading = false |
| | | } |
| | | |
| | | setVideoArr(index: number, value: object, vue: any): void { |
| | | vue.$set(this.videoArr, index, value); |
| | | this.activeForceChoose = false; |
| | | vue.$set(this.videoArr, index, value) |
| | | this.activeForceChoose = false |
| | | } |
| | | |
| | | updateSelectedNodes() { |
| | | this.selectedNodes = []; |
| | | this.selectedNodes = [] |
| | | if (!this.multiple) { |
| | | this.selectedNodes = [this.selectedNode.id]; |
| | | return; |
| | | this.selectedNodes = [this.selectedNode.id] |
| | | return |
| | | } |
| | | |
| | | let _selected = this.selectedNodes; |
| | | let _selected = this.selectedNodes |
| | | function nodeFilter(node: any) { |
| | | if (node.type === "4" && node.selected) { |
| | | _selected.push(node.id); |
| | | if (node.type === '4' && node.selected) { |
| | | _selected.push(node.id) |
| | | } |
| | | if (node.children) { |
| | | node.children.forEach((n: any) => { |
| | | nodeFilter(n); |
| | | }); |
| | | nodeFilter(n) |
| | | }) |
| | | } |
| | | } |
| | | 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); |
| | | }); |
| | | nodeFilter(n) |
| | | }) |
| | | } |
| | | // if (this.selectedNode.cameraType === -1) { |
| | | // this.clusterData.forEach((n: any) => { |
| | | // nodeFilter(n); |
| | | // }); |
| | | // } |
| | | } |
| | | |
| | | updateZTreeCheckNodes(checkedNodes) { |
| | | let _this = this |
| | | _this.selectedNodes = [] |
| | | if (!_this.multiple) { |
| | | _this.selectedNodes = [checkedNodes.id] |
| | | return |
| | | } |
| | | |
| | | function nodeFilter(node: any) { |
| | | if (node.type === '4' && (node.selected || node.checked)) { |
| | | _this.selectedNodes.push(node.id) |
| | | } |
| | | if (node.children) { |
| | | node.children.forEach((n: any) => { |
| | | nodeFilter(n) |
| | | }) |
| | | } |
| | | } |
| | | |
| | | checkedNodes.forEach((n: any) => { |
| | | nodeFilter(n) |
| | | }) |
| | | } |
| | | |
| | | getCameraInfoByIp(ipaddr) { |
| | | let camera = null; |
| | | let camera = null |
| | | |
| | | function nodeFilter(node: any) { |
| | | if (node.rtsp && node.rtsp.indexOf(ipaddr) != -1) { |
| | | camera = node; |
| | | return; |
| | | camera = node |
| | | return |
| | | } |
| | | if (node.children) { |
| | | node.children.forEach((n: any) => { |
| | | nodeFilter(n); |
| | | }); |
| | | nodeFilter(n) |
| | | }) |
| | | } |
| | | } |
| | | |
| | | this.treeData.forEach((n: any) => { |
| | | nodeFilter(n); |
| | | }); |
| | | nodeFilter(n) |
| | | }) |
| | | |
| | | if (!camera) { |
| | | this.gb28181Data.forEach((n: any) => { |
| | | nodeFilter(n); |
| | | }); |
| | | nodeFilter(n) |
| | | }) |
| | | } |
| | | |
| | | return camera; |
| | | return camera |
| | | } |
| | | |
| | | getCameraInfoById(id) { |
| | | let camera = null; |
| | | let camera = null |
| | | |
| | | function nodeFilter(node: any) { |
| | | if (node.id === id) { |
| | | camera = node; |
| | | return; |
| | | camera = node |
| | | return |
| | | } |
| | | if (node.children) { |
| | | node.children.forEach((n: any) => { |
| | | nodeFilter(n); |
| | | }); |
| | | nodeFilter(n) |
| | | }) |
| | | } |
| | | } |
| | | |
| | | this.treeData.forEach((n: any) => { |
| | | nodeFilter(n); |
| | | }); |
| | | nodeFilter(n) |
| | | }) |
| | | |
| | | if (!camera) { |
| | | this.gb28181Data.forEach((n: any) => { |
| | | nodeFilter(n); |
| | | }); |
| | | nodeFilter(n) |
| | | }) |
| | | } |
| | | |
| | | return camera; |
| | | return camera |
| | | } |
| | | |
| | | 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++) { |
| | | if (node[i].id == id) { |
| | | return true; |
| | | return true |
| | | } |
| | | if (node[i].children && node[i].children.length > 0) { |
| | | if (nodeFilter(node[i].children)) { |
| | | parent = node[i].id; |
| | | parent = node[i].id |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | return false |
| | | } |
| | | |
| | | if (isGB) { |
| | | nodeFilter(this.gb28181Data); |
| | | nodeFilter(this.gb28181Data) |
| | | } else { |
| | | nodeFilter(this.treeData); |
| | | nodeFilter(this.treeData) |
| | | } |
| | | |
| | | return parent; |
| | | return parent |
| | | } |
| | | |
| | | clean() { |
| | | this.treeData = JSON.parse(JSON.stringify(this.treeDataPure)); |
| | | this.gb28181Data = JSON.parse(JSON.stringify(this.gb28181DataPure)); |
| | | this.treeData = JSON.parse(JSON.stringify(this.treeDataPure)) |
| | | this.gb28181Data = JSON.parse(JSON.stringify(this.gb28181DataPure)) |
| | | |
| | | this.isFold(this.treeData) |
| | | this.isFold(this.gb28181Data) |
| | | this.selectedNodes = []; |
| | | this.selectedNode = {}; |
| | | |
| | | this.cleanLocalVedio(); |
| | | this.selectedNodes = [] |
| | | this.selectedNode = {} |
| | | } |
| | | |
| | | cleanTree(tree) { |
| | | if (tree === "localTree") { |
| | | this.treeData = JSON.parse(JSON.stringify(this.treeDataPure)); |
| | | if (tree === 'localTree') { |
| | | this.treeData = JSON.parse(JSON.stringify(this.treeDataPure)) |
| | | } |
| | | if (tree === "gb28182Tree") { |
| | | this.gb28181Data = JSON.parse(JSON.stringify(this.gb28181DataPure)); |
| | | if (tree === 'gb28182Tree') { |
| | | this.gb28181Data = JSON.parse(JSON.stringify(this.gb28181DataPure)) |
| | | } |
| | | } |
| | | |
| | |
| | | return |
| | | } |
| | | node.forEach(n => { |
| | | // vue-js-tree 默认展开,控制部分折叠. z-tree 默认折叠, 控制部分展开 |
| | | if (this.foldNodeList[n.id]) { |
| | | n.opened = false; |
| | | if (this.zTree) { |
| | | n.open = false |
| | | } else { |
| | | n.opened = false |
| | | } |
| | | } |
| | | if (n.children && n.children.length > 0) { |
| | | this.isFold(n.children) |
| | |
| | | if (n.children && n.children.length > 0) { |
| | | this.setDropDisable(n.children) |
| | | } else { |
| | | if (n.type === "4") { |
| | | n.dropDisabled = true; |
| | | if (n.type === '4') { |
| | | n.dropDisabled = true |
| | | } |
| | | } |
| | | }) |
| | |
| | | return |
| | | } |
| | | node.sort(function (obj1: any, obj2: any) { |
| | | var val1 = obj1.name; |
| | | var val2 = obj2.name; |
| | | var val1 = obj1.name |
| | | var val2 = obj2.name |
| | | if (val1 < val2) { |
| | | return -1; |
| | | return -1 |
| | | } else if (val1 > val2) { |
| | | return 1; |
| | | return 1 |
| | | } else { |
| | | return 0; |
| | | return 0 |
| | | } |
| | | }); |
| | | }) |
| | | |
| | | node.forEach(n => { |
| | | if (n.children && n.children.length > 0) { |
| | | if (this.zTree) { |
| | | n.open = true |
| | | } |
| | | this.sortTreeData(n.children) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | async fetchLocalTree() { |
| | | const rsp: any = await getLocalCameraTree({ |
| | | 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 : [] |
| | |
| | | |
| | | // 设置禁止拖拽摄像机到摄像机节点 |
| | | this.setDropDisable(this.treeData) |
| | | this.treeDataPure = JSON.parse(JSON.stringify(this.treeData)); |
| | | this.treeDataPure = JSON.parse(JSON.stringify(this.treeData)) |
| | | this.isFold(this.treeData) |
| | | } |
| | | } |
| | | |
| | | async fetchClusterTree (){ |
| | | debugger |
| | | async fetchClusterTree() { |
| | | const rsp: any = await getClusterTree({ |
| | | searchType: this.searchCamType, |
| | | cameraName: this.searchInput |
| | | }); |
| | | if(rsp && rsp.success){ |
| | | console.log(rsp.data); |
| | | }) |
| | | if (rsp && rsp.success) { |
| | | this.clusterData = rsp.data ? rsp.data : [] |
| | | if(this.clusterData && this.clusterData.length > 0){ |
| | | if (this.clusterData && this.clusterData.length > 0) { |
| | | this.sortTreeData(this.clusterData) |
| | | } |
| | | this.clusterDataPure = JSON.parse(JSON.stringify(this.clusterData)); |
| | | this.clusterDataPure = JSON.parse(JSON.stringify(this.clusterData)) |
| | | this.isFold(this.clusterData) |
| | | } |
| | | } |
| | |
| | | const rsp: any = await getGB28181CameraTree({ |
| | | searchType: this.searchCamType, |
| | | cameraName: this.searchInput |
| | | }); |
| | | }) |
| | | |
| | | if (rsp && rsp.success) { |
| | | this.gb28181Data = rsp.data ? rsp.data : [] |
| | |
| | | this.sortTreeData(this.gb28181Data) |
| | | } |
| | | |
| | | this.gb28181DataPure = JSON.parse(JSON.stringify(this.gb28181Data)); |
| | | this.gb28181DataPure = JSON.parse(JSON.stringify(this.gb28181Data)) |
| | | this.isFold(this.gb28181Data) |
| | | } |
| | | } |
| | |
| | | if (this.openeds[1]) { |
| | | this.fetchGbTree() |
| | | } |
| | | |
| | | this.findAllFile({}) |
| | | } |
| | | |
| | | async add(name: string, parent: string) { |
| | | await addAreaTreeData({ |
| | | name: name, |
| | | parentId: parent |
| | | }); |
| | | }) |
| | | |
| | | this.fetchTreeData(); |
| | | this.fetchTreeData() |
| | | } |
| | | |
| | | async del(id: string) { |
| | | await delAreaTreeData({ |
| | | id: id |
| | | }); |
| | | }) |
| | | |
| | | this.fetchTreeData(); |
| | | this.fetchTreeData() |
| | | } |
| | | |
| | | async update(name: string, id: string, alias: string, isGb: boolean) { |
| | |
| | | name: name, |
| | | parentId: this.getParent(id, isGb), |
| | | alias: alias |
| | | }); |
| | | }) |
| | | |
| | | this.fetchTreeData(); |
| | | this.fetchTreeData() |
| | | } |
| | | |
| | | async refreshGB28181() { |
| | |
| | | // this.fetchGbTree() |
| | | } |
| | | |
| | | async findAllFile(params: any) { |
| | | params.fileName = this.searchInput, |
| | | params.type = this.searchLocalType |
| | | params.page = this.localCurrentPage |
| | | params.size = this.localPageSize |
| | | let res: any = await findAllFile(params) |
| | | if (res && res.success) { |
| | | let list = res.data.dataList.map(i => { |
| | | let obj: any = {} |
| | | Object.assign(obj, i) |
| | | if (i.ruleType == 0) { |
| | | obj.iconStatus2 = '0' |
| | | } else { |
| | | obj.iconStatus2 = '1' |
| | | } |
| | | if (!i.snapshot_url) { |
| | | // obj.snapshot_url = require('@/assets/nobody.png') |
| | | obj.snapshot_url = "" |
| | | } else { |
| | | obj.snapshot_url = '/httpImage/' + obj.snapshot_url |
| | | } |
| | | if (i.is_running) { |
| | | obj.iconStatus1 = '1' |
| | | } else if (i.progress == 100) { |
| | | obj.iconStatus1 = '2' |
| | | } else if (i.status == 1 && i.progress == 0 && i.hasRule) { |
| | | obj.iconStatus1 = '3' |
| | | } else if (!i.hasRule && i.progress == 0) { |
| | | obj.iconStatus1 = '4' |
| | | } |
| | | obj.checkStatus = false |
| | | obj.clickStatus = false |
| | | obj.showCheckBox = false |
| | | return obj |
| | | }) |
| | | this.localVedioList = list |
| | | this.localTotal = res.data.total |
| | | // console.log(this.localVedioList,this.searchInput,'本地视频列表') |
| | | } |
| | | } |
| | | |
| | | async show() { |
| | | let res: any = await show() |
| | | if (res && res.success) { |
| | | this.vedioAnaliyseSwitch = res.data.videoEnable |
| | | } |
| | | } |
| | | |
| | | async changeEnable() { |
| | | let res: any = await changeEnable({ |
| | | enable: this.vedioAnaliyseSwitch |
| | | }) |
| | | } |
| | | |
| | | getCheckedFiles() { |
| | | this.checkedLocalVedio = this.localVedioList.filter(i => { |
| | | return i.checkStatus |
| | | }) |
| | | this.clickLocalVideo = this.localVedioList.filter(i => { |
| | | return i.clickStatus |
| | | })[0] |
| | | |
| | | if (this.checkedLocalVedio.length === 0) { |
| | | this.btnStaus = '3' |
| | | return false; |
| | | } |
| | | this.checkedLocalVedio.every((i, index) => { |
| | | let t = '' |
| | | if (i.status == 0 && i.hasRule) { |
| | | t = '1' |
| | | } else if (i.status == 1 && i.hasRule && !i.is_running) { |
| | | t = '2' |
| | | } else { |
| | | t = '3' |
| | | } |
| | | if (index == 0) { |
| | | this.btnStaus = t |
| | | } else { |
| | | if (this.btnStaus !== t) { |
| | | this.btnStaus = '3' |
| | | return false |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | filterLocalVideoWell() { |
| | | if (this.localVedioList.length !== 0) { |
| | | this.localVedioList = this.localVedioList.filter(i => { |
| | | return i.progress == 100 |
| | | }) |
| | | } |
| | | } |
| | | |
| | | cleanLocalVedio() { |
| | | this.localVedioList.map(i => { |
| | | i.checkStatus = false |
| | | i.clickStatus = false |
| | | }) |
| | | this.checkedLocalVedio = [] |
| | | this.btnStaus = "3" |
| | | } |
| | | |
| | | async dropNode(cameraId, areaId) { |
| | | async dropNode(cameraId: string, areaId: string) { |
| | | await updateCameraArea({ cameraId: cameraId, areaId: areaId }) |
| | | } |
| | | |
| | | getAllChildrenNodes(treeNode, arr) { |
| | | for (var i = 0; i < treeNode.length; i++) { |
| | | var sonList = treeNode[i].children; |
| | | if (!sonList) { |
| | | if (treeNode[i].type == "camera") { |
| | | arr.push(treeNode[i]); |
| | | |
| | | if (treeNode[i].checked) { |
| | | this.gb28181CheckedCount += 1; |
| | | } |
| | | } |
| | | } else { |
| | | this.getAllChildrenNodes(sonList, arr); |
| | | } |
| | | } |
| | | return arr; |
| | | } |
| | | countChildrenNodes(treeNode) { |
| | | let arry = [] |
| | | |
| | | this.getAllChildrenNodes(treeNode, arry) |
| | | |
| | | return arry.length |
| | | } |
| | | |
| | | async fetchVideosvrCameras(update: Boolean) { |
| | | let fn = getGb28181Pool |
| | | if (update) { |
| | | fn = refreshGB28181Tree |
| | | } |
| | | const rsp: any = await fn() |
| | | |
| | | if (rsp && rsp.success) { |
| | | this.selectedNode = {} |
| | | this.treeData = rsp.data ? rsp.data : [] |
| | | if (this.treeData && this.treeData.length > 0) { |
| | | this.sortTreeData(this.treeData) |
| | | } |
| | | |
| | | // 设置禁止拖拽摄像机到摄像机节点 |
| | | this.setDropDisable(this.treeData) |
| | | this.isFold(this.treeData) |
| | | |
| | | this.activeTreeData = this.treeData |
| | | |
| | | this.gb28181CheckedCount = 0; |
| | | this.gb28181ChildNodeCount = this.countChildrenNodes(this.treeData) |
| | | } |
| | | } |
| | | |
| | | removeNoCheckedNode(nodes: Array<any>) { |
| | | for (let i = 0; i < nodes.length;) { |
| | | if (!nodes[i].checked) { |
| | | nodes.splice(i, 1) |
| | | continue |
| | | } |
| | | |
| | | if (nodes[i].children && nodes[i].children.length) { |
| | | this.removeNoCheckedNode(nodes[i].children) |
| | | } |
| | | i++ |
| | | } |
| | | } |
| | | |
| | | countCheckedNodes(nodes: Array<any>) { |
| | | let count = 0 |
| | | nodes.forEach(n => { |
| | | if (n.type == "camera") { |
| | | count++ |
| | | } |
| | | }) |
| | | this.gb28181CheckedCount = count |
| | | } |
| | | |
| | | newTreeByChecked(nodes: Array<object>) { |
| | | let newTree = JSON.parse(JSON.stringify(nodes)) |
| | | this.removeNoCheckedNode(newTree) |
| | | |
| | | 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 |
| | | } |
| | | } |