From ccee429d379e0108b7445f72ade8d97c110a6fb3 Mon Sep 17 00:00:00 2001 From: ZZJ <zzjdsg2300@163.com> Date: 星期二, 09 十一月 2021 18:01:59 +0800 Subject: [PATCH] 问题修复 --- src/components/giantTree/index.vue | 83 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 78 insertions(+), 5 deletions(-) diff --git a/src/components/giantTree/index.vue b/src/components/giantTree/index.vue index b1aa707..d0a15dc 100644 --- a/src/components/giantTree/index.vue +++ b/src/components/giantTree/index.vue @@ -5,15 +5,19 @@ :show-checkbox="TreeDataPool.multiple" :readonly="TreeDataPool.readonly" :gb28181="gb28181" + :setting="setting" + @onCreated="handleCreated" @onClick="itemClick" @onCheck="itemCheck" @onDblClick="onDblClick" + @onAddNode="addNode" @onRemoveNode="delNode" @onRenameNode="editNode" @onAddDevice="addCamera" @onImport="importCameras" @onExpand="itemExpand" @onCollapse="itemCollapse" + @onShowPic="showCameraPic" /> <div class="dialog-box-bg" v-show="showDialog" @click="hideDialogBox"></div> <div @@ -64,7 +68,14 @@ height: { type: Number, default: 0 - } + }, + setting: { + type: Object, + require: false, + default: function () { + return {}; + }, + }, }, data() { return { @@ -80,7 +91,8 @@ { required: true, message: "璇疯緭鍏ヨ妭鐐瑰悕绉�", trigger: "change" }, { min: 2, max: 10, message: "闀垮害鍦�2鍒�10涓瓧", trigger: "change" } ] - } + }, + curNodeTid: '', }; }, created() { @@ -100,9 +112,47 @@ }, methods: { handleCreated: function (ztreeObj) { + let _this = this; this.ztreeObj = ztreeObj; + // console.log("handleCreated") // 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; + //鎽勫儚鏈轰俊鎭洿鏂颁俊鎭悗锛屽鏋滆妭鐐逛綅缃湁鍙榯Id灏变笉鍑嗕簡,this.TreeDataPool.selectedNode姝ゆ椂杩樻槸鏃х殑淇℃伅 + let ztreeNodes = ztreeObj.getNodes(); + //var curNodeTid = ''; + _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.selectNode(node, false, true) + } + }, + + findTidByIdFromArr(arr) { + 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; + } + if (arr[i].children) { + this.findTidByIdFromArr(arr[i].children); + } + } + }, onDblClick(evt, treeId, item) { if (item.type !== "4" || this.app !== "Camera") { @@ -169,7 +219,7 @@ importCameras(node) { this.$emit("import", node); }, - addNode(event, node) { + addNode(node) { this.dialogForm = { text: "", method: "add", @@ -222,6 +272,7 @@ this.showDialog = true; }, itemClick(evt, treeId, treeNode) { + this.TreeDataPool.selectedNode = treeNode; this.TreeDataPool.treeType = this.treeName; @@ -234,6 +285,19 @@ this.TreeDataPool.updateZTreeCheckNodes([treeNode]); }, + // itemClick(treeNode) { + // this.TreeDataPool.selectedNode = treeNode; + // this.TreeDataPool.treeType = this.treeName; + + // // 澶氶�� + // if (this.TreeDataPool.multiple) { + // // 鍗曞嚮鏌愪竴涓妭鐐规枃瀛楁椂 鍙栨秷鎵�鏈夊嬀閫夌姸鎬� 鐒跺悗閫変腑鑷韩 + // this.ztreeObj.checkAllNodes(false); + // this.ztreeObj.checkNode(treeNode, true, false, false); + // } + + // this.TreeDataPool.updateZTreeCheckNodes([treeNode]); + // }, itemCheck(evt, treeId, treeNode) { this.TreeDataPool.selectedNode = treeNode; this.TreeDataPool.treeType = this.treeName; @@ -242,18 +306,27 @@ // this.ztreeObj.checkNode(treeNode, true, false, false); let checkedNodes = this.ztreeObj.getCheckedNodes(true); this.TreeDataPool.updateZTreeCheckNodes(checkedNodes); + + // 瀹炴椂缁熻閫変腑涓暟 + this.TreeDataPool.countCheckedNodes(checkedNodes); + + // 淇濆瓨涓�浠芥暟鎹� + this.TreeDataPool.activeTreeData = this.ztreeObj.getNodes() }, //灞曞紑 itemExpand(e, id, node) { - this.TreeDataPool.foldNodeList[node.id] = true + delete this.TreeDataPool.foldNodeList[node.id] }, // 鎶樺彔 itemCollapse(e, id, node) { - delete this.TreeDataPool.foldNodeList[node.id] + this.TreeDataPool.foldNodeList[node.id] = true }, dropNode(node, item, draggedItem, e) { // console.log('dropNode', node, item, draggedItem); this.TreeDataPool.dropNode(draggedItem.id, item.id) + }, + showCameraPic(nodeId) { + this.TreeDataPool.showBaseImage(nodeId) } } }; -- Gitblit v1.8.0