From f5fe795a8885246e93ce0fb837454e6ff5ffb8d2 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 23 八月 2022 23:17:27 +0800 Subject: [PATCH] 修复管理中心树 --- src/views/manageCenter/index.vue | 68 ++++++++++++++++++++++++++------- 1 files changed, 53 insertions(+), 15 deletions(-) diff --git a/src/views/manageCenter/index.vue b/src/views/manageCenter/index.vue index cdb76cc..fbfd603 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> @@ -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() { @@ -297,26 +307,26 @@ }, { name: "缁熻鍒嗘瀽", - icon: "/images/manageCenter/search.png", + icon: "/images/manageCenter/datav.png", openPath: "/dataView", path: "/dataView", - permission: "statisticMng" + permission: "dataViewMng" }, { name: "鎺ㄩ�佺鐞�", - icon: "/images/manageCenter/manage2.png", + icon: "/images/manageCenter/push.png", openPath: "/report", path: "/report", - permission: "statisticMng" + permission: "dataPushMng" }, { name: "瀹炴椂鐩戞帶", - icon: "/images/manageCenter/manage2.png", + icon: "/images/manageCenter/video.png", openPath: "/video", path: "/video", - permission: "statisticMng" + permission: "videoMng" } ], cameraTree: [], @@ -457,17 +467,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() { @@ -481,9 +492,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) { @@ -503,14 +535,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 } @@ -567,6 +598,7 @@ let decodeResult = JSON.parse(decodeString) decodeResult = [] if (decodeResult) { + // console.log("decodeResult", decodeResult) decodeResult.forEach((element) => { this.solvedTotal = this.solvedTotal + element.doc_count this.tableDataList.push({ date: element.key_as_string, count: element.doc_count }) @@ -643,6 +675,12 @@ } }, handleTreeChange(value) { + // console.log("change:", value) + if (value == null) { + this.selectedOrg = "" + + return + } this.selectedOrg = value[value.length - 1] }, getInfo() { -- Gitblit v1.8.0