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>&nbsp;&nbsp;
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