From 0e65c5001ad3623d6e4d8e023689ddd3708889a5 Mon Sep 17 00:00:00 2001 From: hanbaoshan <hanbaoshan@aiotlink.com> Date: 星期六, 17 十月 2020 13:04:22 +0800 Subject: [PATCH] 统计查询(集群)左侧树调试,cardwindow添加analyServerName字段 --- src/api/area.ts | 8 ++ src/pages/searchForCluster/index/App.vue | 2 src/pages/searchForCluster/index/Searching.vue | 1 src/components/LeftNav.vue | 127 ++++++++++++++++++++++++++++++----------- src/Pool/TreeData.ts | 23 +++++++ src/components/serfDiagram/index.vue | 4 + src/components/subComponents/ModelCard.vue | 3 + src/Pool/VideoPhotoData.ts | 3 8 files changed, 133 insertions(+), 38 deletions(-) diff --git a/src/Pool/TreeData.ts b/src/Pool/TreeData.ts index a835411..ee52310 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; @@ -64,8 +67,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 = ""; @@ -304,6 +309,23 @@ } } + async fetchClusterTree (){ + debugger + 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) + } + } + async fetchGbTree() { const rsp: any = await getGB28181CameraTree({ searchType: this.searchCamType, @@ -328,6 +350,7 @@ if (this.openeds[1]) { this.fetchGbTree() } + this.findAllFile({}) } diff --git a/src/Pool/VideoPhotoData.ts b/src/Pool/VideoPhotoData.ts index ec150b3..15b058c 100644 --- a/src/Pool/VideoPhotoData.ts +++ b/src/Pool/VideoPhotoData.ts @@ -81,7 +81,8 @@ inputValue: this.inputValue, tabs: this.queryTabs, tasks: this.queryTasks, - treeNodes: this.treeNodes + treeNodes: this.treeNodes, + isAll: true } const rsp: any = await getSearchList(param); diff --git a/src/api/area.ts b/src/api/area.ts index 52de7a5..8b5b2bb 100644 --- a/src/api/area.ts +++ b/src/api/area.ts @@ -17,6 +17,14 @@ }); }; +export const getClusterTree = (query: any) => { + return request({ + url: "/data/api-v/camera/nodeCamera", + method: "get", + params: query + }); +}; + export const addAreaTreeData = (query: any) => { return request({ url: "/data/api-v/area/add", diff --git a/src/components/LeftNav.vue b/src/components/LeftNav.vue index 151f219..6f97a2a 100644 --- a/src/components/LeftNav.vue +++ b/src/components/LeftNav.vue @@ -156,7 +156,52 @@ name="cluster" :style="`height:${height - 56}px;`" v-if="showCluster" - ></el-tab-pane> + > + <div class="local-vedio-area"> + <!-- 鎼滅储 --> + <div class="navTopSelect"> + <div class="search-input flex-box"> + <el-select + v-model="TreeDataPool.searchCamType" + placeholder="璇烽�夋嫨" + @change="searchClusterData" + > + <el-option + v-for="item in searchTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> + <span style="display: inline-block;padding: 0px 3px;"></span> + <el-input + v-model="TreeDataPool.searchInput" + placeholder="鎼滅储" + clearable + @input="querySearchAsync('cluster')" + > + <i + class="el-icon-search el-input__icon" + style="color:#DCDFE6" + slot="prefix" + @click="searchClusterData" + ></i> + </el-input> + </div> + </div> + <div class="cluster-list"> + <tree-menu + ref="tree" + :app="appName" + :treeName="'localTree'" + :node="TreeDataPool.clusterData" + :height="height" + @addDevice="addCamera" + @import="importCameras" + /> + </div> + </div> + </el-tab-pane> <el-tab-pane label="鏁版嵁鏍�" name="dataStack" @@ -289,17 +334,17 @@ }, computed: { - showTab() { + showTab () { return true; }, - showCam() { - return this.appName === "Camera" || (this.appName === "Search" && (this.buttonAuthority.indexOf("search:camera") >= 0 || this.isAdmin)); + showCam () { + return this.appName === "Camera" || this.appName === 'Cluster' || (this.appName === "Search" && (this.buttonAuthority.indexOf("search:camera") >= 0 || this.isAdmin)); }, - showCluster() { + showCluster () { return this.appName === "Cluster"; }, // 鏁版嵁鏍堥厤缃繀椤绘樉绀恒�� 妫�绱㈤�氳繃鏉冮檺鎺у埗鏄剧ず, 鏈畨瑁呮暟鎹爤涔熶笉鏄剧ず - showDataStack() { + showDataStack () { if (this.appName === "DataStack") { return true; } @@ -319,10 +364,10 @@ return false; }, - showLock() { + showLock () { return this.edit; }, - openeds() { + openeds () { let arry = []; for (let i = 0; i < this.TreeDataPool.openeds.length; i++) { if (this.TreeDataPool.openeds[i]) { @@ -333,7 +378,7 @@ } return arry; }, - isAdmin() { + isAdmin () { if ( sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "" @@ -344,7 +389,7 @@ return false; } }, - data() { + data () { return { cameraAuth: "videoMonitor:camera", dataStack: "videoMonitor:dataStack", @@ -399,7 +444,9 @@ menuLoading: false }; }, - created() { + created () { + console.log(this.appName) + console.log(this.showCam) if (this.showCam) { this.TreeDataPool.treeActiveName = "camera" this.TreeDataPool.fetchTreeData(); @@ -409,43 +456,50 @@ this.DataStackPool.fetchFiles(); } + if (this.showCluster) { + this.TreeDataPool.treeActiveName = "cluster" + this.TreeDataPool.fetchClusterTree(); + } }, methods: { - searchAreaData() { + searchAreaData () { this.TreeDataPool.fetchTreeData(); }, - searchDataStack() { + searchDataStack () { this.DataStackPool.fetchFiles(); }, - lockSwitch() { + searchClusterData () { + this.TreeDataPool.fetchClusterTree(); + }, + lockSwitch () { this.TreeDataPool.readonly = !this.TreeDataPool.readonly; }, - gbLockSwitch() { + gbLockSwitch () { this.TreeDataPool.gbReadonly = !this.TreeDataPool.gbReadonly; }, - dataStackLockSwitch() { + dataStackLockSwitch () { this.DataStackPool.readonly = !this.DataStackPool.readonly; }, - closeTree() { + closeTree () { this.TreeDataPool.showTreeBox = false; bus.$emit('refreshCompareImg') }, - addNode(event) { + addNode (event) { this.$refs.tree.addNode(event, { id: 0 }); }, - addCamera(node) { + addCamera (node) { bus.$emit("addCameraOnTree", node); }, - addDir(node) { + addDir (node) { bus.$emit("addDirOnTree", node); }, - menuOpen(index) { + menuOpen (index) { this.TreeDataPool.openeds[index] = true; }, - menuClose(index) { + menuClose (index) { this.TreeDataPool.openeds[index] = false; }, - refreshGB() { + refreshGB () { // 闃叉閲嶅鍒锋柊 if (this.loadingGBTree) { return; @@ -459,7 +513,7 @@ this.loadingGBTree = false; }, 1000 * 60); }, - querySearchAsync(type) { + querySearchAsync (type) { clearTimeout(this.timeout); this.timeout = setTimeout(() => { if (type === "camera") { @@ -470,7 +524,7 @@ } }, 500); }, - handleClick(event) { + handleClick (event) { if (event.name == 'dataStack') { this.DataStackPool.fetchFiles(); this.DataStackPool.clean(); @@ -479,7 +533,7 @@ this.TreeDataPool.treeActiveName = event.name console.log("褰撳墠婵�娲籲ame锛�", this.TreeDataPool.treeActiveName) }, - async changeEnable() { + async changeEnable () { if (this.PollData.localVideo === 0) { this.$notify({ title: "澶辫触", @@ -495,13 +549,13 @@ console.log(res, '鍒囨崲鏈湴鏂囦欢鍒嗘瀽寮�鍏�') } }, - getCheckedFiles() { + getCheckedFiles () { let list1 = this.TreeDataPool.localVedioList.filter(i => { return i.checkStatus }) return list1 }, - async stopVedio(status) { + async stopVedio (status) { // let list1 = this.getCheckedFiles(); if (this.TreeDataPool.checkedLocalVedio.length == 0) { this.$notify({ @@ -524,7 +578,7 @@ console.log(res, '寮�鍚殏鍋滃弬鏁�') } }, - async deleteLocalFiles() { + async deleteLocalFiles () { let list1 = this.getCheckedFiles(); console.log(list1, '宸插嬀閫夌殑瑙嗛') if (list1.length == 0) { @@ -546,16 +600,16 @@ } }, - refrash(current, pageSize) { + refrash (current, pageSize) { this.TreeDataPool.localCurrentPage = current; }, - importCameras(area) { + importCameras (area) { this.importAreaId = area this.$refs["import-btn"].click() }, - async uploadFile(params) { + async uploadFile (params) { const _file = params.file; const fileReader = new FileReader(); fileReader.onload = (ev) => { @@ -613,14 +667,14 @@ }; fileReader.readAsBinaryString(_file); }, - exceed() { + exceed () { this.$message.error("鏈�澶氬彧鑳戒笂浼�1涓獂ls鏂囦欢"); }, //鍒犻櫎鏂囦欢 - remove() { + remove () { }, - newCamera() { + newCamera () { return { latitude: 0, rtsp: "", @@ -896,4 +950,7 @@ color: #606266; } } +.flex-box{ + display: flex; +} </style> \ No newline at end of file diff --git a/src/components/serfDiagram/index.vue b/src/components/serfDiagram/index.vue index f8ad4fd..9358571 100644 --- a/src/components/serfDiagram/index.vue +++ b/src/components/serfDiagram/index.vue @@ -1,5 +1,7 @@ <template lang='pug'> .net + .arrow_box(:style="toolTipStyle") + p {{toolTipAddr}} d3-network( ref='net' :startX="startX" @@ -10,7 +12,7 @@ @drag-start='dragStart' @node-click='nodeClick' @node-hover='nodeHover' - @node-out='nodeOut' + @node-out='nodeOut' ) </template> diff --git a/src/components/subComponents/ModelCard.vue b/src/components/subComponents/ModelCard.vue index 7c07467..52b5ae6 100644 --- a/src/components/subComponents/ModelCard.vue +++ b/src/components/subComponents/ModelCard.vue @@ -43,6 +43,9 @@ <p> <span class="fontStyleForModel">{{ data.cameraAddr }}</span> </p> + <p> + <span class="fontStyleForModel">{{ data.analyServerName }}</span> + </p> <p style="width:100%"> <span v-for="(item,index) in data.alarmRules" :key="index+'rule'"> <span class="fontStyleForModel">{{data.taskName}}</span> diff --git a/src/pages/searchForCluster/index/App.vue b/src/pages/searchForCluster/index/App.vue index 44cca51..ef802ef 100644 --- a/src/pages/searchForCluster/index/App.vue +++ b/src/pages/searchForCluster/index/App.vue @@ -4,7 +4,7 @@ <div class="resize-bar"></div> <div class="resize-line"></div> <div class="resize-save"> - <left-nav :appName="'Search'" :height="screenHeight - 40"></left-nav> + <left-nav :appName="'Cluster'" :height="screenHeight - 40"></left-nav> </div> </div> <div class="column-right"> diff --git a/src/pages/searchForCluster/index/Searching.vue b/src/pages/searchForCluster/index/Searching.vue index 7cd82d6..68e5e41 100644 --- a/src/pages/searchForCluster/index/Searching.vue +++ b/src/pages/searchForCluster/index/Searching.vue @@ -615,6 +615,7 @@ this.VideoPhotoData.searchTime = this.format(this.searchTime); //this.VideoPhotoData.inputValue = this.searchText; this.VideoPhotoData.showType = this.showType; + this.VideoPhotoData.isAll = true; if (!this.VideoPhotoData.uploadType) { console.log("鏌ヨ鏂规硶"); this.VideoPhotoData.uploadDiaplay = false; -- Gitblit v1.8.0