From b43346c7c365137fbd783355c1394270716cce35 Mon Sep 17 00:00:00 2001 From: iapyang Date: Mon, 28 Dec 2020 14:46:11 +0800 Subject: [PATCH 1/5] =?UTF-8?q?Revert=20"fix:=20=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E4=B8=80=E4=B8=8B=E5=A4=84=E7=90=86"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 4e7b82f2c3a99a375ea15e093cc0cc99c41f9aac. --- .../treevaluechooser/abstract.treevaluechooser.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/component/treevaluechooser/abstract.treevaluechooser.js b/src/component/treevaluechooser/abstract.treevaluechooser.js index 223538caf..c03e9ee3d 100644 --- a/src/component/treevaluechooser/abstract.treevaluechooser.js +++ b/src/component/treevaluechooser/abstract.treevaluechooser.js @@ -37,14 +37,10 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { if (!this.items) { o.itemsCreator({}, function (items) { self._initData(items); - join(); + call(); }); } else { - join(); - } - - // 重新计算合并selectedValues - function join() { + // 同步状态下,重新计算合并selectedValues self._reqAdjustTreeNode(options, function (joinedValue) { options.selectedValues = joinedValue; @@ -767,7 +763,7 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { return true; }); - + return findParentNode; }, From 99a4522daeec612f9bd432b72dd66054ecd022d8 Mon Sep 17 00:00:00 2001 From: iapyang Date: Mon, 28 Dec 2020 14:46:44 +0800 Subject: [PATCH 2/5] =?UTF-8?q?Revert=20"REPORT-46068=20fix:=20=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E4=B8=8B=E6=8B=89=E6=A0=91=E5=B1=95=E5=BC=80=E5=89=8D?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E9=87=8D=E6=96=B0=E8=AE=A1=E7=AE=97=E7=9A=84?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=90=8E=E7=9A=84=E5=80=BC"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 8728284e923a206e6860181687c089712bf5289f. --- .../treevaluechooser/abstract.treevaluechooser.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/component/treevaluechooser/abstract.treevaluechooser.js b/src/component/treevaluechooser/abstract.treevaluechooser.js index c03e9ee3d..fb5ec8306 100644 --- a/src/component/treevaluechooser/abstract.treevaluechooser.js +++ b/src/component/treevaluechooser/abstract.treevaluechooser.js @@ -40,12 +40,7 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { call(); }); } else { - // 同步状态下,重新计算合并selectedValues - self._reqAdjustTreeNode(options, function (joinedValue) { - options.selectedValues = joinedValue; - - call(); - }); + call(); } function call() { From 607eaf694d5209d8b4242dcae9979f8975d69664 Mon Sep 17 00:00:00 2001 From: iapyang Date: Mon, 28 Dec 2020 15:50:07 +0800 Subject: [PATCH 3/5] =?UTF-8?q?REPORT-46068=20fix:=20=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD=E6=97=B6=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E6=B7=B1=E5=BA=A6=E6=AF=94=E8=BE=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../abstract.treevaluechooser.js | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/component/treevaluechooser/abstract.treevaluechooser.js b/src/component/treevaluechooser/abstract.treevaluechooser.js index fb5ec8306..3af3d3f68 100644 --- a/src/component/treevaluechooser/abstract.treevaluechooser.js +++ b/src/component/treevaluechooser/abstract.treevaluechooser.js @@ -598,11 +598,15 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { } function dealWithSelectedValue(parentValues, selectedValues) { - var valueMap = {}; + var valueMap = {}, parents = BI.deepClone(parentValues); BI.each(parentValues, function (i, v) { + parents.push(v); + selectedValues = selectedValues[v] || {}; }); BI.each(selectedValues, function (value, obj) { + var currentParents = BI.concat(parents, value); + if (BI.isNull(obj)) { valueMap[value] = [0, 0]; return; @@ -615,6 +619,8 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { BI.each(obj, function (t, o) { if (BI.isNull(o) || BI.isEmpty(o)) { nextNames[t] = true; + } else { + isAllSelected(o, BI.concat(currentParents, [t])) && (nextNames[t] = true); } }); // valueMap的数组第一个参数为不选: 0, 半选: 1, 全选:2, 第二个参数为改节点下选中的子节点个数(子节点全选或者不存在) @@ -623,6 +629,24 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { return valueMap; } + function isAllSelected(selected, parents) { + if (BI.isEmpty(selected)) { + return true; + } + + if (self._getChildCount(parents) !== BI.size(selected)) { + return false; + } + + var can = true; + + BI.each(selected, function (value) { + can = can && isAllSelected(selected[value], BI.concat(parents, value)); + }); + + return can; + } + function getCheckState(current, parentValues, valueMap, checkState) { // 节点本身的checked和half优先级最高 var checked = checkState.checked, half = checkState.half; @@ -758,7 +782,7 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { return true; }); - + return findParentNode; }, @@ -769,7 +793,8 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { } else { var parent = this.tree.getRoot(); } - return parent.getChildren(); + + return parent ? parent.getChildren() : []; }, _getAllChildren: function(parentValues) { From 5988fffcd536b631e631e762b2a66ee61d8b5d80 Mon Sep 17 00:00:00 2001 From: iapyang Date: Mon, 28 Dec 2020 15:58:16 +0800 Subject: [PATCH 4/5] =?UTF-8?q?refactor:=20=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/component/treevaluechooser/abstract.treevaluechooser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/component/treevaluechooser/abstract.treevaluechooser.js b/src/component/treevaluechooser/abstract.treevaluechooser.js index 3af3d3f68..50a6c5eac 100644 --- a/src/component/treevaluechooser/abstract.treevaluechooser.js +++ b/src/component/treevaluechooser/abstract.treevaluechooser.js @@ -598,7 +598,7 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { } function dealWithSelectedValue(parentValues, selectedValues) { - var valueMap = {}, parents = BI.deepClone(parentValues); + var valueMap = {}, parents = (parentValues || []).slice(0); BI.each(parentValues, function (i, v) { parents.push(v); From 80a11742bd435e5a04aba7d20416d9a75730371e Mon Sep 17 00:00:00 2001 From: iapyang Date: Tue, 29 Dec 2020 10:02:28 +0800 Subject: [PATCH 5/5] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E5=86=99?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../treevaluechooser/abstract.treevaluechooser.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/component/treevaluechooser/abstract.treevaluechooser.js b/src/component/treevaluechooser/abstract.treevaluechooser.js index 50a6c5eac..cf00c985b 100644 --- a/src/component/treevaluechooser/abstract.treevaluechooser.js +++ b/src/component/treevaluechooser/abstract.treevaluechooser.js @@ -638,13 +638,9 @@ BI.AbstractTreeValueChooser = BI.inherit(BI.Widget, { return false; } - var can = true; - - BI.each(selected, function (value) { - can = can && isAllSelected(selected[value], BI.concat(parents, value)); + return BI.every(selected, function (value) { + return isAllSelected(selected[value], BI.concat(parents, value)); }); - - return can; } function getCheckState(current, parentValues, valueMap, checkState) {