From 6ef8217bce8e175125e00bbb78f443b0ddc1b800 Mon Sep 17 00:00:00 2001 From: zhangpeihang <948869991@qq.com> Date: Fri, 29 Apr 2022 11:25:06 +0800 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E5=8F=96=E4=B8=8D=E5=88=B0=20Value?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Tree/Tree.razor.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/BootstrapBlazor/Components/Tree/Tree.razor.cs b/src/BootstrapBlazor/Components/Tree/Tree.razor.cs index c792e449c..d7b7841d4 100644 --- a/src/BootstrapBlazor/Components/Tree/Tree.razor.cs +++ b/src/BootstrapBlazor/Components/Tree/Tree.razor.cs @@ -196,6 +196,30 @@ public partial class Tree { await OnTreeItemClick(item); } + + if (ShowRadio) + { + if (OnTreeItemChecked != null) + { + await OnTreeItemChecked(new List { item }); + } + } + else + { + if (item.Checked) + { + item.Checked = false; + } + else + { + item.Checked = true; + } + item.CascadeSetCheck(item.Checked); + if (OnTreeItemChecked != null) + { + await OnTreeItemChecked(GetCheckedItems().ToList()); + } + } } /// -- Gitee From 96c437586c5fe1d0264d41a4a58e52bdba7a532f Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Fri, 29 Apr 2022 12:03:57 +0800 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E7=82=B9?= =?UTF-8?q?=E5=87=BB=20TreeItem=20=E8=8A=82=E7=82=B9=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Tree/Tree.razor.cs | 22 ++++--------------- 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/src/BootstrapBlazor/Components/Tree/Tree.razor.cs b/src/BootstrapBlazor/Components/Tree/Tree.razor.cs index d7b7841d4..f7a2d5e4b 100644 --- a/src/BootstrapBlazor/Components/Tree/Tree.razor.cs +++ b/src/BootstrapBlazor/Components/Tree/Tree.razor.cs @@ -199,26 +199,12 @@ public partial class Tree if (ShowRadio) { - if (OnTreeItemChecked != null) - { - await OnTreeItemChecked(new List { item }); - } + await OnRadioClick(item); } - else + else if (ShowCheckbox) { - if (item.Checked) - { - item.Checked = false; - } - else - { - item.Checked = true; - } - item.CascadeSetCheck(item.Checked); - if (OnTreeItemChecked != null) - { - await OnTreeItemChecked(GetCheckedItems().ToList()); - } + var status = item.Checked ? CheckboxState.Checked : CheckboxState.UnChecked; + await OnStateChanged(status, item); } } -- Gitee From 2e11f47bf231d976c99585cab4ff9c807e3807bd Mon Sep 17 00:00:00 2001 From: zhangpeihang <948869991@qq.com> Date: Fri, 29 Apr 2022 12:56:26 +0800 Subject: [PATCH 3/6] =?UTF-8?q?test:=20=E8=A1=A5=E5=85=85=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TreeTest.cs | 45 ++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/test/UnitTest/Components/TreeTest.cs b/test/UnitTest/Components/TreeTest.cs index c5e1893d2..263b92bae 100644 --- a/test/UnitTest/Components/TreeTest.cs +++ b/test/UnitTest/Components/TreeTest.cs @@ -31,13 +31,54 @@ public class TreeTest : BootstrapBlazorTestBase } [Fact] - public void OnClick_Ok() + public async Task OnClick_Checkbox_Ok() + { + var cut = Context.RenderComponent(pb => + { + pb.Add(a => a.IsAccordion, true); + pb.Add(a => a.ShowCheckbox, true); + pb.Add(a => a.ClickToggleNode, true); + pb.Add(a => a.Items, new List() + { + new TreeItem() + { + Text = "Test1", + Items = new List() + { + new TreeItem() + { + Text = "Test11", + } + } + }, + new TreeItem() + { + Text = "Test2", + IsCollapsed = false, + Items = new List() + { + new TreeItem() + { + Text = "Test21", + } + } + } + }); + }); + await cut.InvokeAsync(() => cut.Find(".tree-node").Click()); + await Task.Delay(2000); + await cut.InvokeAsync(() => cut.Find(".tree-node").Click()); + } + + [Fact] + public async Task OnClick_Ok() { var clicked = false; var expanded = false; var cut = Context.RenderComponent(pb => { pb.Add(a => a.IsAccordion, true); + pb.Add(a => a.ShowRadio, true); pb.Add(a => a.ClickToggleNode, true); pb.Add(a => a.OnTreeItemClick, item => { @@ -77,7 +118,7 @@ public class TreeTest : BootstrapBlazorTestBase }); }); - cut.InvokeAsync(() => cut.Find(".tree-node").Click()); + await cut.InvokeAsync(() => cut.Find(".tree-node").Click()); Assert.True(clicked); Assert.True(expanded); } -- Gitee From 7454670799e0f98ea081bee419019c36d5679b8c Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Fri, 29 Apr 2022 13:32:30 +0800 Subject: [PATCH 4/6] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=BF=BB=E8=BD=AC=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Tree/Tree.razor.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/BootstrapBlazor/Components/Tree/Tree.razor.cs b/src/BootstrapBlazor/Components/Tree/Tree.razor.cs index f7a2d5e4b..ac31e895b 100644 --- a/src/BootstrapBlazor/Components/Tree/Tree.razor.cs +++ b/src/BootstrapBlazor/Components/Tree/Tree.razor.cs @@ -203,6 +203,7 @@ public partial class Tree } else if (ShowCheckbox) { + item.Checked = !item.Checked; var status = item.Checked ? CheckboxState.Checked : CheckboxState.UnChecked; await OnStateChanged(status, item); } -- Gitee From 9e9940e089cb88a1d269b6be901c5ce38ca309e0 Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Fri, 29 Apr 2022 13:32:39 +0800 Subject: [PATCH 5/6] =?UTF-8?q?test:=20=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TreeTest.cs | 31 +++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/test/UnitTest/Components/TreeTest.cs b/test/UnitTest/Components/TreeTest.cs index 263b92bae..987107fd1 100644 --- a/test/UnitTest/Components/TreeTest.cs +++ b/test/UnitTest/Components/TreeTest.cs @@ -33,11 +33,18 @@ public class TreeTest : BootstrapBlazorTestBase [Fact] public async Task OnClick_Checkbox_Ok() { + var tcs = new TaskCompletionSource(); + bool itemChecked = false; var cut = Context.RenderComponent(pb => { pb.Add(a => a.IsAccordion, true); pb.Add(a => a.ShowCheckbox, true); - pb.Add(a => a.ClickToggleNode, true); + pb.Add(a => a.OnTreeItemChecked, items => + { + itemChecked = items.FirstOrDefault()?.Checked ?? false; + tcs.SetResult(true); + return Task.CompletedTask; + }); pb.Add(a => a.Items, new List() { new TreeItem() @@ -50,24 +57,20 @@ public class TreeTest : BootstrapBlazorTestBase Text = "Test11", } } - }, - new TreeItem() - { - Text = "Test2", - IsCollapsed = false, - Items = new List() - { - new TreeItem() - { - Text = "Test21", - } - } } }); }); + + // 测试点击选中 await cut.InvokeAsync(() => cut.Find(".tree-node").Click()); - await Task.Delay(2000); + await tcs.Task; + Assert.True(itemChecked); + + // 测试取消选中 + tcs = new TaskCompletionSource(); await cut.InvokeAsync(() => cut.Find(".tree-node").Click()); + await tcs.Task; + Assert.False(itemChecked); } [Fact] -- Gitee From d397ecebb41931d4830abe97995401fc194e3597 Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Fri, 29 Apr 2022 13:33:05 +0800 Subject: [PATCH 6/6] chore: bump version 6.5.15 --- src/BootstrapBlazor/BootstrapBlazor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 635039d2c..59140ae75 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 6.5.14 + 6.5.15 -- Gitee