From c746783c4f570f9bdbe2d62b22bda22308b0dfba Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期一, 05 十二月 2022 15:27:35 +0800
Subject: [PATCH] 修复断流数据展示的内容

---
 src/views/manageCenter/index.vue |  159 +++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 113 insertions(+), 46 deletions(-)

diff --git a/src/views/manageCenter/index.vue b/src/views/manageCenter/index.vue
index 2b64b8c..97b7298 100644
--- a/src/views/manageCenter/index.vue
+++ b/src/views/manageCenter/index.vue
@@ -15,7 +15,7 @@
       <div class="products">
         <div class="title">鍏ㄩ儴浜у搧</div>
         <div class="productList">
-          <div class="productItem" v-for="(item, index) in productList" :key="index" @click="jump(item)">
+          <div class="productItem" v-for="(item, index) in permissionMenuList" :key="index" @click="jump(item)">
             <img :src="item.icon" alt="" />
             <div class="name">{{ item.name }}</div>
           </div>
@@ -26,7 +26,7 @@
         <div class="products">
           <div class="title">缁熻鍒嗘瀽</div>
           <div class="productList">
-            <p class="p-statis" style=" vertical-align: top">
+            <p class="p-statis" style="vertical-align: top">
               <span>鏃堕棿锛�</span>
               <el-date-picker
                 size="mini"
@@ -64,7 +64,7 @@
               <span>閮ㄩ棬锛�</span>
               <el-cascader
                 size="mini"
-                style="width:400px"
+                style="width: 400px"
                 v-model="searchTree"
                 :options="menuTree"
                 :props="{ value: 'id', label: 'name', checkStrictly: true }"
@@ -80,7 +80,7 @@
                 clearable
                 collapse-tags
                 size="mini"
-                style="width:140px"
+                style="width: 140px"
                 placeholder="璇烽�夋嫨"
               >
                 <el-option
@@ -162,7 +162,7 @@
         <div class="left">
           <div class="title">棰勮鏁版嵁鍗犳瘮:</div>
           <div class="info">
-            <div class="equipmentInfo" style="margin-top:25px">
+            <div class="equipmentInfo" style="margin-top: 25px">
               <div class="equipmentCard">
                 <div class="label">鏁存敼鎬婚噺</div>
                 <div class="number">
@@ -198,7 +198,7 @@
 
                 <el-table-column prop="count" align="center" label="鏁存敼鏁伴噺" show-overflow-tooltip></el-table-column>
               </el-table>
-              <el-pagination
+              <!-- <el-pagination
                 @current-change="refrash"
                 @size-change="handleSizeChange"
                 :current-page="page"
@@ -207,7 +207,7 @@
                 :page-sizes="[5, 10, 15, 20, 25]"
                 :total="solvedTotal"
                 background
-              ></el-pagination>
+              ></el-pagination> -->
             </div>
           </div>
         </div>
@@ -250,7 +250,17 @@
       if (this.warningChecked == 0 || this.warningTotal == 0) {
         return 0
       }
-      return parseInt(this.warningChecked / this.warningTotal) * 100 + "%"
+      return parseInt((this.warningChecked / this.warningTotal) * 100) + "%"
+    },
+    permissionMenuList() {
+      let user = JSON.parse(sessionStorage.getItem("userInfo"))
+      if (user.username == "Administrator") {
+        return this.productList
+      }
+
+      return this.productList.filter((item) => {
+        return user.permissions.indexOf(item.permission) >= 0
+      })
     }
   },
   data() {
@@ -295,21 +305,51 @@
           path: "/search",
           permission: "statisticMng"
         },
+        {
+          name: "缁熻鍒嗘瀽",
+          icon: "/images/manageCenter/datav.png",
+          openPath: "/dataView",
+          path: "/dataView",
+          permission: "dataViewMng"
+        },
 
         {
-          name: "鎺ㄩ�佺鐞�",
-          icon: "/images/manageCenter/manage2.png",
-          openPath: "/report",
-          path: "/report",
-          permission: "statisticMng"
+          name: "鐢ㄦ埛绠$悊",
+          icon: "/images/manageCenter/push.png",
+          openPath: "/subAccount",
+          path: "/subAccount",
+          permission: "accountMng"
+        },
+
+        {
+          name: "鏁版嵁涓婁紶",
+          icon: "/images/manageCenter/push.png",
+          openPath: "/dataPush",
+          path: "/dataPush",
+          permission: "reportMng"
+        },
+
+        {
+          name: "鏁版嵁鎶ヨ〃",
+          icon: "/images/manageCenter/push.png",
+          openPath: "/dataReport",
+          path: "/dataReport",
+          permission: ""
         },
 
         {
           name: "瀹炴椂鐩戞帶",
-          icon: "/images/manageCenter/manage2.png",
+          icon: "/images/manageCenter/video.png",
           openPath: "/video",
           path: "/video",
-          permission: "statisticMng"
+          permission: "videoMng"
+        },
+        {
+          name: "鐐逛綅鍙樻洿",
+          icon: "/images/manageCenter/cam.png",
+          openPath: "/invalidCamera",
+          path: "/invalidCamera",
+          permission: "positionMng"
         }
       ],
       cameraTree: [],
@@ -427,6 +467,10 @@
           "rgb(255, 124, 31)",
           "rgb(165, 96, 255)"
         ],
+        tooltip: {
+          trigger: "item",
+          formatter: "{b} {d}%" //鍙鐧惧垎姣�
+        },
         series: [
           {
             name: "Nightingale Chart",
@@ -439,7 +483,9 @@
             },
             label: {
               show: false
+              //formatter: '{b} : {c} ({d}%)' //甯﹀綋鍓嶅浘渚嬪悕 + 鐧惧垎姣�
             },
+
             data: []
           }
         ]
@@ -450,17 +496,18 @@
       solvedTotal: 0,
       warningTotal: 0,
       warningChecked: 0,
-      warningSolved: 0
+      warningSolved: 0,
+      authorizedCameras: []
     }
   },
   created() {
     this.getInfo()
   },
-  mounted() {
+  async mounted() {
+    await this.getCameras()
     this.searchHandler()
     this.initBar()
     this.initPie()
-    this.getCameras()
   },
   methods: {
     async getCameras() {
@@ -474,9 +521,30 @@
       let camereReq = await getLocalCameraTree({ clusterId: clusterId })
       if (camereReq && camereReq.success) {
         this.cameraTree = camereReq.data.treeMenu
-        let tmpTree = JSON.parse(JSON.stringify(camereReq.data.treeMenu))
+
+        let userInfo = JSON.parse(sessionStorage.getItem("userInfo"))
+        // 绠$悊鍛樻潈闄�
+        if (userInfo.username != "Administrator") {
+          // 娓呯悊娌℃湁鏉冮檺绠$悊鐨勬憚鍍忔満, 鍚庣淇鍚庡垹闄�
+          let checkedCameras = userInfo.email
+
+          // basic 涓哄瓙璐︽埛榛樿鐨勭┖瀛楁,琛ㄧず鍙鐞嗙殑鎽勫儚鏈虹洰褰曚负绌�
+          if (checkedCameras == "basic") {
+            this.cameraTree = ["basic"]
+            this.authorizedCameras = ["basic"]
+          } else {
+            let cameraIds = checkedCameras.split(",")
+            this.authorizedCameras = cameraIds
+            this.TreeDataPool.removeNoAuthorizedNode(this.cameraTree, cameraIds)
+          }
+        }
+
+        let tmpTree = JSON.parse(JSON.stringify(this.cameraTree))
+
         for (let i = 0; i < tmpTree.length; i++) this.clearNode(tmpTree[i])
         this.menuTree = tmpTree
+
+        // console.log(this.cameraTree)
       }
     },
     clearNode(tree) {
@@ -496,14 +564,13 @@
       let selectedNode = {}
       let orgNodeIds = []
 
-      if (this.selectedOrg == "") {
-        return orgNodeIds
+      if (this.selectedOrg == "" || this.selectedOrg == null) {
+        return this.authorizedCameras
       }
 
       function findNode(node) {
         if (node.id == selectedNodeId) {
           selectedNode = node
-
           return
         }
 
@@ -546,30 +613,34 @@
         if (rsp && rsp.success) {
           this.decodeWarningRate(rsp.data.warningRate)
           this.decodeWarningChartRate(rsp.data.warningChartRate)
-          this.decodeWarningStatics(rsp.data.warningTable)
-          this.decodeWarningTable(rsp.data.warningStatics)
+          this.decodeWarningStatics(rsp.data.warningStatics)
+          this.decodeWarningTable(rsp.data.warningTable)
         }
       })
     },
-    decodeWarningTable(b64data) {
+    // 鏁存敼鍒楄〃
+    decodeWarningStatics(b64data) {
       this.solvedTotal = 0
       this.tableDataList = []
       if (b64data) {
         let decodeString = Base64.decode(b64data)
         if (decodeString != "") {
           let decodeResult = JSON.parse(decodeString)
-          decodeResult = []
           if (decodeResult) {
+            // console.log("warningStatics", decodeResult)
             decodeResult.forEach((element) => {
               this.solvedTotal = this.solvedTotal + element.doc_count
-              this.tableDataList.push({ date: element.key_as_string, count: element.doc_count })
+              this.tableDataList.push({
+                date: element.key_as_string,
+                count: element.doc_count
+              })
             })
           }
         }
       }
     },
     // 鎶樼嚎鍥�
-    decodeWarningStatics(b64data) {
+    decodeWarningTable(b64data) {
       this.lineChart.clear()
       this.barOption.xAxis.data = []
       this.barOption.series[0].data = []
@@ -598,7 +669,10 @@
           let decodeResult = JSON.parse(decodeString)
           if (decodeResult) {
             decodeResult.forEach((element) => {
-              this.pieOption.series[0].data.push({ value: element.doc_count, name: element.key })
+              this.pieOption.series[0].data.push({
+                value: element.doc_count,
+                name: element.key
+              })
             })
           }
         }
@@ -636,6 +710,12 @@
       }
     },
     handleTreeChange(value) {
+      // console.log("change:", value)
+      if (value == null) {
+        this.selectedOrg = ""
+
+        return
+      }
       this.selectedOrg = value[value.length - 1]
     },
     getInfo() {
@@ -694,23 +774,10 @@
       this.pieChart.setOption(this.pieOption)
     },
     jump(route) {
-      const userInfo = JSON.parse(sessionStorage.getItem("userInfo"))
-
-      const val = userInfo.permissions.find((item) => {
-        return item == route.permission
+      const { href } = this.$router.resolve({
+        path: route.path
       })
-      if (val) {
-        if (route.path === "/search") {
-          const { href } = this.$router.resolve({
-            path: "/search"
-          })
-          window.open(href, "_blank")
-          return
-        }
-        this.$router.push(route.path)
-      } else if (!userInfo.parentId) {
-        this.$router.push(route.openPath)
-      }
+      window.open(href, "_blank")
     },
     refrash() {},
     handleSizeChange() {},
@@ -804,7 +871,7 @@
       display: flex;
 
       .productItem {
-        margin-right: 20px;
+        margin: 0px 10px;
         width: 190px;
         height: 90px;
         display: flex;

--
Gitblit v1.8.0