From 907a3504a77873a8e762adc2f684222c8946adec Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 10 八月 2022 21:18:54 +0800 Subject: [PATCH] 添加实时监控,调整树的滚动条 --- src/components/giantTree/index.vue | 269 ++++++++++++++++++++++------------------------------- 1 files changed, 114 insertions(+), 155 deletions(-) diff --git a/src/components/giantTree/index.vue b/src/components/giantTree/index.vue index 9dca0d4..686c1ea 100644 --- a/src/components/giantTree/index.vue +++ b/src/components/giantTree/index.vue @@ -2,11 +2,7 @@ <div class="tree-menu" :style="`max-height:${height - 200}px;`"> <div class="devArea" v-if="showDevArea"> <swiper :options="swiperOption"> - <swiper-slide - v-for="item in nodeList" - :key="item.devId" - :class="{ active: activeTabObj.devId === item.devId }" - > + <swiper-slide v-for="item in nodeList" :key="item.devId" :class="{ active: activeTabObj.devId === item.devId }"> <div class="tab" @click="chooseTab(item)"> {{ item.devName }} </div> @@ -47,23 +43,12 @@ <div class="dialog-box-bg" v-show="showDialog" @click="hideDialogBox"></div> <div class="dialog-box" v-show="showDialog"> <el-card :body-style="{ padding: '10px' }"> - <el-form - :model="dialogForm" - size="mini" - :rules="rules" - ref="dialogForm" - label-width="70px" - > + <el-form :model="dialogForm" size="mini" :rules="rules" ref="dialogForm" label-width="70px"> <el-form-item label="鍚嶇О锛�" prop="name"> - <el-input - v-model="dialogForm.text" - oninput="if(value.length>10)value=value.slice(0,10)" - ></el-input> + <el-input v-model="dialogForm.text" oninput="if(value.length>10)value=value.slice(0,10)"></el-input> </el-form-item> <div class="text-center pb-2"> - <el-button size="mini" type="primary" @click="submitForm" - >淇濆瓨</el-button - > + <el-button size="mini" type="primary" @click="submitForm">淇濆瓨</el-button> <el-button size="mini" @click="hideDialogBox">鍙栨秷</el-button> </div> </el-form> @@ -73,49 +58,49 @@ </template> <script> -import ZTree from "./zTree/ztree"; +import ZTree from "./zTree/ztree" export default { name: "GiantTreeMenu", components: { - ZTree, + ZTree }, props: { app: { type: String, - default: "Video", + default: "Video" }, node: { - type: Array, + type: Array }, treeName: { type: String, - default: "", + default: "" }, gb28181: { type: Boolean, - default: false, + default: false }, height: { type: Number, - default: 0, + default: 0 }, setting: { type: Object, require: false, - default: function () { - return {}; - }, + default: function() { + return {} + } }, search: { type: Boolean, - default: false, + default: false }, showDevArea: { type: Boolean, - default: false, + default: false }, - nodeList: {}, + nodeList: {} }, data() { return { @@ -123,13 +108,13 @@ clientX: 0, clientY: 0, dialogForm: { - text: "", + text: "" }, rules: { text: [ { required: true, message: "璇疯緭鍏ヨ妭鐐瑰悕绉�", trigger: "change" }, - { min: 2, max: 10, message: "闀垮害鍦�2鍒�10涓瓧", trigger: "change" }, - ], + { min: 2, max: 10, message: "闀垮害鍦�2鍒�10涓瓧", trigger: "change" } + ] }, curNodeTid: "", @@ -139,165 +124,138 @@ spaceBetween: 0, pagination: { el: ".swiper-pagination", - clickable: true, + clickable: true }, navigation: { nextEl: ".swiper-next-border", - prevEl: ".swiper-pre-border", + prevEl: ".swiper-pre-border" }, observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper - observeParents: true, //淇敼swiper鐨勭埗鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper - }, - }; + observeParents: true //淇敼swiper鐨勭埗鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper + } + } }, created() { - this.activeTabObj = - this.nodeList && this.nodeList.length > 0 ? this.nodeList[0] : ""; - this.TreeDataPool.zTree = true; + this.activeTabObj = this.nodeList && this.nodeList.length > 0 ? this.nodeList[0] : "" + this.TreeDataPool.zTree = true this.TreeDataPool.activeVideoIndex = sessionStorage.activeIndexVideo ? Number(sessionStorage.activeIndexVideo) - : this.TreeDataPool.activeVideoIndex; + : this.TreeDataPool.activeVideoIndex }, watch: { - "TreeDataPool.treeType": function (newValue) { + "TreeDataPool.treeType": function(newValue) { if (newValue !== this.treeName) { - this.TreeDataPool.cleanTree(this.treeName); + this.TreeDataPool.cleanTree(this.treeName) } }, - showDevArea: function () { - this.$forceUpdate(); - }, + showDevArea: function() { + this.$forceUpdate() + } }, methods: { - handleCreated: function (ztreeObj) { - let _this = this; - this.ztreeObj = ztreeObj; - ztreeObj.expandAll(true); + handleCreated: function(ztreeObj) { + let _this = this + this.ztreeObj = ztreeObj + ztreeObj.expandAll(true) // onCreated 涓搷浣渮treeObj瀵硅薄灞曞紑绗竴涓妭鐐� // ztreeObj.expandNode(ztreeObj.getNodes()[0], true); // 鎽勫儚鏈洪厤缃垏鎹㈡椂, 璁剧疆閫変腑鐘舵�� if (this.TreeDataPool.selectedNode.id) { // 鍙栨秷鎵�鏈夊閫夌殑鑺傜偣,浠呬繚鐣欏綋鍓嶅崟閫夌殑鑺傜偣 - this.TreeDataPool.selectedNodes = [this.TreeDataPool.selectedNode.id]; - this.curNodeTid = this.TreeDataPool.selectedNode.tId; + this.TreeDataPool.selectedNodes = [this.TreeDataPool.selectedNode.id] + this.curNodeTid = this.TreeDataPool.selectedNode.tId //鎽勫儚鏈轰俊鎭洿鏂颁俊鎭悗锛屽鏋滆妭鐐逛綅缃湁鍙榯Id灏变笉鍑嗕簡,this.TreeDataPool.selectedNode姝ゆ椂杩樻槸鏃х殑淇℃伅 - let ztreeNodes = ztreeObj.getNodes(); + let ztreeNodes = ztreeObj.getNodes() //var curNodeTid = ''; - _this.findTidByIdFromArr(ztreeNodes); - this.TreeDataPool.selectedNode.tId = _this.curNodeTid; - let node = this.ztreeObj.getNodeByTId( - this.TreeDataPool.selectedNode.tId - ); + _this.findTidByIdFromArr(ztreeNodes) + this.TreeDataPool.selectedNode.tId = _this.curNodeTid + let node = this.ztreeObj.getNodeByTId(this.TreeDataPool.selectedNode.tId) // 澶氶�夋椂, 閫変腑鍗曢�夊崟鍑荤殑鑺傜偣 if (this.TreeDataPool.multiple) { - this.ztreeObj.checkAllNodes(false); - this.ztreeObj.checkNode(node, true, false, false); + this.ztreeObj.checkAllNodes(false) + this.ztreeObj.checkNode(node, true, false, false) } - this.ztreeObj.selectNode(node, false, true); + this.ztreeObj.selectNode(node, false, true) } }, chooseTab(item) { - this.$emit("saveTree", this.activeTabObj); + this.$emit("saveTree", this.activeTabObj) setTimeout(() => { - this.activeTabObj = item; - }, 100); + this.activeTabObj = item + }, 100) }, findTidByIdFromArr(arr) { - let len = arr.length; - let _this = this; + let len = arr.length + let _this = this for (var i = 0; i < len; i++) { if (arr[i].id == this.TreeDataPool.selectedNode.id) { - _this.curNodeTid = arr[i].tId; - break; + _this.curNodeTid = arr[i].tId + break } if (arr[i].children) { - this.findTidByIdFromArr(arr[i].children); + this.findTidByIdFromArr(arr[i].children) } } }, onDblClick(evt, treeId, item) { if (item.type !== "4" || this.app !== "Camera") { - return; + return } - this.TreeDataPool.activeVideoId = item.id; - let videoArr = this.TreeDataPool.videoArr; - let nullVideoIndex = ""; + this.TreeDataPool.activeVideoId = item.id + let videoArr = this.TreeDataPool.videoArr + let nullVideoIndex = "" if ( this.TreeDataPool.activeForceChoose && this.TreeDataPool.activeVideoIndex !== "" && this.TreeDataPool.activeVideoIndex <= videoArr.length - 1 ) { - this.TreeDataPool.setVideoArr( - this.TreeDataPool.activeVideoIndex, - undefined, - this - ); + this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, undefined, this) this.$nextTick(() => { - this.TreeDataPool.setVideoArr( - this.TreeDataPool.activeVideoIndex, - item, - this - ); - }); - return; + this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, item, this) + }) + return } for (let i = 0; i < videoArr.length; i++) { // eslint-disable-next-line - if ( - videoArr[i] === "" || - videoArr[i] === undefined || - videoArr[i] === null - ) { - nullVideoIndex = i; - break; + if (videoArr[i] === "" || videoArr[i] === undefined || videoArr[i] === null) { + nullVideoIndex = i + break } else { - nullVideoIndex = ""; + nullVideoIndex = "" } } if (nullVideoIndex === "") { - this.TreeDataPool.setVideoArr( - this.TreeDataPool.activeVideoIndex, - undefined, - this - ); + this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, undefined, this) this.$nextTick(() => { - this.TreeDataPool.setVideoArr( - this.TreeDataPool.activeVideoIndex, - item, - this - ); - }); + this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, item, this) + }) } else { // this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, undefined, this); this.$nextTick(() => { - this.TreeDataPool.setVideoArr( - this.TreeDataPool.activeVideoIndex, - item, - this - ); - }); - this.TreeDataPool.activeVideoIndex = nullVideoIndex; + this.TreeDataPool.setVideoArr(this.TreeDataPool.activeVideoIndex, item, this) + }) + this.TreeDataPool.activeVideoIndex = nullVideoIndex } }, addCamera(node) { - this.$emit("addDevice", node); + this.$emit("addDevice", node) }, importCameras(node) { - this.$emit("import", node); + this.$emit("import", node) }, addNode(node) { this.dialogForm = { text: "", method: "add", - node: node.id, - }; - this.showDialogBox(event); + node: node.id + } + this.showDialogBox(event) }, editNode(node) { this.dialogForm = { @@ -305,58 +263,58 @@ method: "edit", node: node.id, alias: node.alias, - gb28181: this.gb28181, - }; - this.showDialogBox(event); + gb28181: this.gb28181 + } + this.showDialogBox(event) }, delNode(node) { - this.TreeDataPool.del(node.id); + this.TreeDataPool.del(node.id) }, submitForm() { // 鎻愪氦鏂板鎴栬�呯紪杈戝尯鍩熻妭鐐硅〃鍗� this.$refs.dialogForm.validate((valid) => { if (valid) { if (this.dialogForm.method == "add") { - this.TreeDataPool.add(this.dialogForm.text, this.dialogForm.node); + this.TreeDataPool.add(this.dialogForm.text, this.dialogForm.node) } else if (this.dialogForm.method == "edit") { this.TreeDataPool.update( this.dialogForm.text, this.dialogForm.node, this.gb28181 ? this.dialogForm.text : "", this.dialogForm.gb28181 - ); + ) } } else { - return false; + return false } - }); - this.hideDialogBox(); + }) + this.hideDialogBox() }, hideDialogBox() { - this.showDialog = false; - this.dialogForm = { text: "" }; + this.showDialog = false + this.dialogForm = { text: "" } }, showDialogBox(event) { - let { clientX = 0, offsetY = 0 } = event; + let { clientX = 0, offsetY = 0 } = event // this.clientX = clientX - 120; - this.clientX = 50; - this.clientY = offsetY; - this.showDialog = true; + this.clientX = 50 + this.clientY = offsetY + this.showDialog = true }, itemClick(evt, treeId, treeNode) { - console.log("click"); - this.TreeDataPool.selectedNode = treeNode; - this.TreeDataPool.activeNode = treeNode; - this.TreeDataPool.treeType = this.treeName; + console.log("click") + this.TreeDataPool.selectedNode = treeNode + this.TreeDataPool.activeNode = treeNode + this.TreeDataPool.treeType = this.treeName // 澶氶�� if (this.TreeDataPool.multiple) { // 鍗曞嚮鏌愪竴涓妭鐐规枃瀛楁椂 鍙栨秷鎵�鏈夊嬀閫夌姸鎬� 鐒跺悗閫変腑鑷韩 - this.ztreeObj.checkAllNodes(false); - this.ztreeObj.checkNode(treeNode, true, false, false); + this.ztreeObj.checkAllNodes(false) + this.ztreeObj.checkNode(treeNode, true, false, false) } - this.TreeDataPool.updateZTreeCheckNodes([treeNode]); + this.TreeDataPool.updateZTreeCheckNodes([treeNode]) }, // itemClick(treeNode) { // this.TreeDataPool.selectedNode = treeNode; @@ -373,39 +331,39 @@ // }, itemCheck(evt, treeId, treeNode) { if (treeNode) { - this.TreeDataPool.selectedNode = treeNode; + this.TreeDataPool.selectedNode = treeNode } - this.TreeDataPool.treeType = this.treeName; + this.TreeDataPool.treeType = this.treeName // 澶氶�� // this.ztreeObj.checkNode(treeNode, true, false, false); - let checkedNodes = this.ztreeObj.getCheckedNodes(true); - this.TreeDataPool.updateZTreeCheckNodes(checkedNodes); + let checkedNodes = this.ztreeObj.getCheckedNodes(true) + this.TreeDataPool.updateZTreeCheckNodes(checkedNodes) // 瀹炴椂缁熻閫変腑涓暟 - this.TreeDataPool.countCheckedNodes(checkedNodes); + this.TreeDataPool.countCheckedNodes(checkedNodes) // 淇濆瓨涓�浠芥暟鎹� - this.TreeDataPool.activeTreeData = this.ztreeObj.getNodes(); - this.$emit("itemChecked", treeNode); + this.TreeDataPool.activeTreeData = this.ztreeObj.getNodes() + this.$emit("itemChecked", treeNode) }, //灞曞紑 itemExpand(e, id, node) { - delete this.TreeDataPool.foldNodeList[node.id]; + delete this.TreeDataPool.foldNodeList[node.id] }, // 鎶樺彔 itemCollapse(e, id, node) { - this.TreeDataPool.foldNodeList[node.id] = true; + this.TreeDataPool.foldNodeList[node.id] = true }, dropNode(node, item, draggedItem, e) { // console.log('dropNode', node, item, draggedItem); - this.TreeDataPool.dropNode(draggedItem.id, item.id); + this.TreeDataPool.dropNode(draggedItem.id, item.id) }, showCameraPic(nodeId) { - this.TreeDataPool.showBaseImage(nodeId); - }, - }, -}; + this.TreeDataPool.showBaseImage(nodeId) + } + } +} </script> <style lang="scss" scoped> .devArea { @@ -474,6 +432,7 @@ overflow-x: auto; overflow-y: hidden; margin-bottom: 4px; + max-height: 70vh; } .empty { line-height: 76px; -- Gitblit v1.8.0