From d78e7221cb1b3059133b2775a8a301c6939891f1 Mon Sep 17 00:00:00 2001 From: iapyang Date: Mon, 7 Sep 2020 15:01:47 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-38692=20=E6=A0=91=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E5=AF=BB=E6=89=BE=E8=8A=82=E7=82=B9=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../treevaluechooser/abstract.treevaluechooser.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/component/treevaluechooser/abstract.treevaluechooser.js b/src/component/treevaluechooser/abstract.treevaluechooser.js index 79ec70629..d5c76efdf 100644 --- a/src/component/treevaluechooser/abstract.treevaluechooser.js +++ b/src/component/treevaluechooser/abstract.treevaluechooser.js @@ -726,6 +726,7 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { var self = this; var findParentNode; var index = 0; + var currentParent = this.tree.getRoot(); this.tree.traverse(function (node) { if (self.tree.isRoot(node)) { return; @@ -733,14 +734,27 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { if (index > parentValues.length) { return false; } + + /** + * 一个树结构。要找root_1_3的子节点 + * {root: { 1: {1: {}, 2: {}, 3: {}}, 3: {1: {}, 2: {}} } } + * 当遍历到root_1节点时,index++,而下一个节点root_3时,符合下面的if逻辑,这样找到的节点就是root_3节点了,需要加步判断是否是root_1的子节点 + */ if (index === parentValues.length && node.value === v) { + if (node.getParent() !== currentParent) { + return; + } + findParentNode = node; + return false; } if (node.value === parentValues[index]) { index++; + currentParent = node; return; } + return true; }); return findParentNode;