From 0175cda6150656bc74b34c6f6c71edd1e1fc653c Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@iotlink.com> Date: 星期四, 04 二月 2021 18:22:54 +0800 Subject: [PATCH] treee, 修复tab切换时树的选中状态.添加区域 --- src/pages/cameraAccess/index/VideoManage.vue | 128 +++++++++++++++++++++--------------------- 1 files changed, 63 insertions(+), 65 deletions(-) diff --git a/src/pages/cameraAccess/index/VideoManage.vue b/src/pages/cameraAccess/index/VideoManage.vue index 0cf560d..c5b7296 100644 --- a/src/pages/cameraAccess/index/VideoManage.vue +++ b/src/pages/cameraAccess/index/VideoManage.vue @@ -1,24 +1,30 @@ <template> <div class="s-video-manage"> - <el-tabs class="video-tab" v-model="activeName" type="border-card" @tab-click="handleClick"> + <el-tabs + class="video-tab" + ref="topTab" + v-model="activeName" + type="border-card" + @tab-click="handleClick" + > <el-tab-pane :label="firstLabeName" name="camera-info" - v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('VIDEOCAMERA:camera:info')" + v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('cameraAccess:cameraInfo')" > <camera-info ref="cameraInfo" /> </el-tab-pane> <el-tab-pane :label="firstLabeName" name="camera-info" - v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('VIDEOCAMERA:dataStack:stackInfo')" + v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('dataStack:cameraInfo')" > <data-stack-info ref="dataStackInfo" /> </el-tab-pane> <el-tab-pane label="鐙珛鍦烘櫙" name="separate-rule" - v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('VIDEOCAMERA:camera:selfRule')" + v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('cameraAccess:selfRule')" > <separate-rules ref="sepRule" /> <!-- <local-separate ref="localSeparate" v-else></local-separate> --> @@ -26,7 +32,7 @@ <el-tab-pane label="鐙珛鍦烘櫙" name="separate-rule" - v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('VIDEOCAMERA:dataStack:selfRule')" + v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('dataStack:selfRule')" > <separate-rules ref="sepRule" /> <!-- <local-separate ref="localSeparate" v-else></local-separate> --> @@ -34,7 +40,7 @@ <el-tab-pane label="鑱斿姩鍦烘櫙" name="linkage-rule" - v-if="(isShow('VIDEOCAMERA:camera:linkRule') || isShow('VIDEOCAMERA:dataStack:linkRule')) && this.TreeDataPool.treeActiveName == 'camera'" + v-if="(isShow('cameraAccess:linkRule')) && this.TreeDataPool.treeActiveName == 'camera'" > <linkage-rule ref="linkRule" /> </el-tab-pane> @@ -50,7 +56,7 @@ // import fTemplate from "@/components/common/fTemplate"; // import localSeparate from "@/components/camera/localSeparate"; -//import bus from "@/main"; +import bus from "@/plugin/bus"; //import TreeDataPool from "@/Pool/TreeData"; export default { @@ -59,7 +65,7 @@ DataStackInfo, SeparateRules, LinkageRule }, - data() { + data () { return { activeName: "camera-info", buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [], @@ -67,7 +73,7 @@ }; }, computed: { - isAdmin() { + isAdmin () { if ( sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "" @@ -75,9 +81,10 @@ let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username; return loginName === "superadmin" || loginName === "basic"; } + return false; }, - firstLabeName() { + firstLabeName () { return this.TreeDataPool.treeActiveName === "camera" ? "鎽勫儚鏈轰俊鎭�" : "鏁版嵁鏍堜俊鎭�" } }, @@ -99,7 +106,7 @@ } }, "TreeDataPool.selectedNodes": { - handler(nodes) { + handler (nodes) { if (this.activeName == "linkage-rule") { this.$refs.linkRule.initCameraData(); } @@ -107,15 +114,12 @@ deep: true }, "DataStackPool.selectedDir": { - handler(node, oldNode) { - console.log(this.activeName) - console.log(node, '鍕鹃�夋湰鍦拌棰�') + handler (node, oldNode) { if (this.TreeDataPool.treeActiveName !== 'dataStack') { return } this.$nextTick(() => { if (this.activeName == "camera-info") { - console.log("dataStackInfo.selectDir(node)") this.$refs.dataStackInfo.selectDir(node); } else if (this.activeName == "separate-rule" && node.length !== 0) { this.$refs.sepRule.initCameraData(node.id); @@ -123,30 +127,26 @@ }) }, deep: true - } + }, + }, - created() { + created () { if (this.TreeDataPool.treeActiveName == 'camera') { - if (this.isShow('VIDEOCAMERA:camera:info')) { + if (this.isShow('cameraAccess:cameraInfo')) { this.activeName = "camera-info" - } else if (this.isShow('VIDEOCAMERA:camera:selfRule') || this.isShow('VIDEOCAMERA:datastack:selfRule')) { + } else if (this.isShow('cameraAccess:selfRule')) { this.activeName = "separate-rule" - } else if (this.isShow('VIDEOCAMERA:camera:linkRule') || this.isShow('VIDEOCAMERA:datastack:linkRule')) { + } else if (this.isShow('cameraAccess:linkRule')) { this.activeName = "linkage-rule" - } else if (this.isShow('VIDEOCAMERA:camera:resourceCalc') || this.isShow('VIDEOCAMERA:datastack:resourceCalc')) { - this.activeName = "poll-setting" } } else { - if (this.isShow('VIDEOCAMERA:camera:info')) { + if (this.isShow('dataStack:cameraInfo')) { this.activeName = "camera-info" - } else if (this.isShow('VIDEOCAMERA:camera:selfRule') || this.isShow('VIDEOCAMERA:datastack:selfRule')) { + } else if (this.isShow('dataStack:selfRule')) { this.activeName = "separate-rule" - } else if (this.isShow('VIDEOCAMERA:camera:linkRule') || this.isShow('VIDEOCAMERA:datastack:linkRule')) { - this.activeName = "linkage-rule" - } else if (this.isShow('VIDEOCAMERA:camera:resourceCalc') || this.isShow('VIDEOCAMERA:datastack:resourceCalc')) { - this.activeName = "poll-setting" } } + this.TreeDataPool.readonly = true; this.TreeDataPool.gbReadonly = true; this.TreeDataPool.multiple = false; @@ -154,53 +154,46 @@ this.selectedNodes = []; this.VideoManageData.init(); }, - beforeDestroy() { + beforeDestroy () { clearInterval(this.intervalTimer); //this.TreeDataPool.treeActiveName = "camera"; }, - mounted() { + mounted () { this.$nextTick(() => { - // bus.$on("addCameraOnTree", node => { - // this.handAddDevice(node); - // }); - // bus.$on("addDirOnTree", node => { - // this.handAddDIr(node); - // }); - // this.TreeDataPool.clean(); + bus.$on("addCameraOnTree", node => { + this.handAddDevice(node); + }); + bus.$on("addDirOnTree", node => { + this.handAddDIr(node); + }); + this.TreeDataPool.clean(); }); - let _this = this + let _this = this; + _this.PollData.statisticTaskInfo(); this.intervalTimer = setInterval(() => { _this.PollData.statisticTaskInfo(); }, 10000) }, methods: { - isShow(authority) { - if (this.isAdmin) { - return true; - } else if (this.buttonAuthority.indexOf("," + authority + ",") > -1) { - return true; - } else if ("videoCamera:pollSetting" === authority) { - return true; - } else { - return false; - } + isShow (authority) { + return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 }, - handAddDevice(node) { + handAddDevice (node) { let _this = this; setTimeout(() => { _this.$refs.cameraInfo.addDevice(node); _this.activeName = "camera-info"; }, 100); }, - handAddDIr(node) { + handAddDIr (node) { let _this = this; setTimeout(() => { _this.$refs.dataStackInfo.addDir(node); _this.activeName = "camera-info"; }, 100); }, - handleClick(tab, event) { + handleClick (tab, event) { this.TreeDataPool.multiple = tab.name === "linkage-rule"; if (tab.name === "camera-info") { if (this.TreeDataPool.treeActiveName == 'camera') { @@ -228,8 +221,9 @@ <style lang="scss"> .s-video-manage { width: 100%; + min-width: 1599px; height: 100%; - float: right; + float: left; box-sizing: border-box; .el-tabs--border-card { box-shadow: none; @@ -247,19 +241,17 @@ .el-tabs--border-card { height: 100%; width: 100%; - &.video-tab{ - &>.el-tabs__header{ - position: fixed; - top:0; - - width:100%; - z-index:999; + &.video-tab { + & > .el-tabs__header { + //position: fixed; + //position: absolute; + //top:0; + //left: 0; height: 54px; overflow-y: hidden; } } .el-tabs__header { - .is-active { color: #3d68e1 !important; } @@ -286,16 +278,22 @@ } } } - .el-tabs__content { + .video-tab > .el-tabs__content { width: 100%; - margin-top: 52px; - //height: calc(100% - 52px); + //margin-top: 52px; + height: calc(100% - 36px); box-sizing: border-box; - padding: 13px 0; + overflow-y: auto; + padding: 0; + } + .video-tab > .el-tabs__content::-webkit-scrollbar { + /*婊氬姩鏉℃暣浣撴牱寮�*/ + width: 6px; /*楂樺鍒嗗埆瀵瑰簲妯珫婊氬姩鏉$殑灏哄*/ + height: 6px; } .el-tab-pane { width: 100%; - height: 100%; + //height: 100%; } } </style> -- Gitblit v1.8.0