From 56b9ab9549ac07620d4e2f9d7c76ef4f0e594286 Mon Sep 17 00:00:00 2001
From: zhangpeihang <948869991@qq.com>
Date: Tue, 25 Jul 2023 00:02:31 +0800
Subject: [PATCH 1/4] =?UTF-8?q?doc:=20=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/BootstrapBlazor.Shared/Samples/Uploads.razor.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/BootstrapBlazor.Shared/Samples/Uploads.razor.cs b/src/BootstrapBlazor.Shared/Samples/Uploads.razor.cs
index b1a54928b..e16c12132 100644
--- a/src/BootstrapBlazor.Shared/Samples/Uploads.razor.cs
+++ b/src/BootstrapBlazor.Shared/Samples/Uploads.razor.cs
@@ -27,7 +27,7 @@ public sealed partial class Uploads
private CancellationTokenSource? ReadAvatarToken { get; set; }
private List DefaultFormatFileList { get; } = new List()
-{
+ {
new UploadFile { FileName = "Test.xls" },
new UploadFile { FileName = "Test.doc" },
new UploadFile { FileName = "Test.ppt" },
@@ -38,11 +38,11 @@ public sealed partial class Uploads
new UploadFile { FileName = "Test.zip" },
new UploadFile { FileName = "Test.txt" },
new UploadFile { FileName = "Test.dat" }
- };
+ };
private List Base64FormatFileList { get; } = new List()
{
- new UploadFile { FileName = "Test", PrevUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAkCAYAAAD/yagrAAAE60lEQVR4AWJwL/AB9GIWvI0jURz/L1NomZmZP8p9kWNmhnIbKPdomZmZGcJgO7QsWMbce55Yl11t47FbVdKTYpjOr/+H4y4Z/MpYeJVV8KVvokFRylq9osKfVtGQ/NHyPl2CbNVGwau2oOlmgUDJtDJGzxtvvIA3vRH+7IgeA0VtYhQBtKPlToFgC6RY58aggfwLNKhr0Zry2NnPrpIM2YGW2+UBG1IEmdGVJEVXE+hQXt8joKhLjdGVZHd7TSD9DHmT3J1dheroSF4fhnvUVQwbZx9UOnHSzQjkTN0tIG+8hFdbxet4PQOG4WqJwN1hFVb+xUBmCblxvxRkIE+Q+Yf0T31NSrp4/RV4FhHgoSTchQRZBK4D1+Fe2q2g8CYXU6buQyNDaiZKZhn0IYXHVwbkRQydHyawOAGGisa/o3DvI/jF3QKKiuAy+LKs5CvaXMLdeXb35wbkKTjmReDZHysCBosWJqN7r0jZ/VfgXtIlUNQnVpK7D4nNJSC5BHGi1d108Ppr8MxlF0cJqBSyFJaUfUnvHLyO4cttgaI+NhGB7HE0MaSUks/gU5vwe1gv5tfhmUmAhxME8jbIUtiEDus+fhmDJlgCRY0ylZRZhybKWtNinmYlH9NvL5puO3m9UHOkgzb3xuF5HCkDyhYiSwrYVfQPTpYChTc+E35tG9VJBjGFFNmtVlNMDnjzbx0EBpKq1eTeh2awbArBRuHadBWu6WVB4U/NITfuobYoCZl7QL//wDtr+nTmsgzQh2Kwgtz7QAZWFeGw/RI8s94Kigp1PvzZg2i9x11FDtKn/oZCoZdZxhaAXmG4/ohJKHudLE1Gyu66DOfs10BRR5CU3TKQIrtzj9BAkF991dsMslTZEClLsI+jFmANZYFAdAJl9QG03jWH9GrcFh9QTP4Of6GfJGSpsv1J2aoEKRuWCANNJNqOFAaPAW36rVRMCjVf6ZCtqYF2p6Asxg5mWK6tQamY9RCs8z1wF+FxTR5UqYT/3GC7oCkMHcjxKguq6cnl+Egf2whip3C9Yu56jk+GXXOtv1XIa8L1f3AFkHe9az83AmNanwV/bhfa5JKJ3n1slCUL8dk7CNfvVFMfySRThoxbK7fh18tTZXI2QeySLk88IRGsbHkqQj6wUJ72G5CloCXKZrdbLPgVMgVfQMq5m97bfQWOOeVbaK02nSA2ofn2y662UJE47horLZTe38oDjdxQUhmawocxa0OJ5hXjnZE4w1y0uc/iULKGfk+xNuZxI/BnjhFs+THPq4phmTsbeYPXRjFsJJ+NSMlnInHkxrwzGDjR3uBcG1/B/b/TwZkhubb6tP2oVfTAD2G4kw9vYiA2h+zy4GwYxd7S4qGOgd6oqVn6re1DTXiO4e4wPF+yQlF4ZCBfheSPIjJn+ciS/w93qjA6aZYqeQ5D3dTqvuE6GZNTkov5vqsYvLh7j8u1sWWkLIdBQR+q+XdtaKGhJCWBDpkwgSw9gRpKyoNKw6rjCLCDP4yVflSgWFwt3C0HSUo2BTFYX28fVAaWPpDx7wtwjOSSUszawnUT0KTudlfrFQwZ3WNf867CNZQhk/C8kIFUhJLt/O3Jzn62IYNwrUvA8zws4W61CGlDSfugXMz5pJgiSFYyXMYiRXdH4GmyqaR9UHLxzxG41KAwpZxRPN4kRf85Z5I4MvYfFUFGfemJG40AAAAASUVORK5CYII=" },
+ new UploadFile { FileName = "Test", PrevUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAkCAYAAAD/yagrAAAE60lEQVR4AWJwL/AB9GIWvI0jURz/L1NomZmZP8p9kWNmhnIbKPdomZmZGcJgO7QsWMbce55Yl11t47FbVdKTYpjOr/+H4y4Z/MpYeJVV8KVvokFRylq9osKfVtGQ/NHyPl2CbNVGwau2oOlmgUDJtDJGzxtvvIA3vRH+7IgeA0VtYhQBtKPlToFgC6RY58aggfwLNKhr0Zry2NnPrpIM2YGW2+UBG1IEmdGVJEVXE+hQXt8joKhLjdGVZHd7TSD9DHmT3J1dheroSF4fhnvUVQwbZx9UOnHSzQjkTN0tIG+8hFdbxet4PQOG4WqJwN1hFVb+xUBmCblxvxRkIE+Q+Yf0T31NSrp4/RV4FhHgoSTchQRZBK4D1+Fe2q2g8CYXU6buQyNDaiZKZhn0IYXHVwbkRQydHyawOAGGisa/o3DvI/jF3QKKiuAy+LKs5CvaXMLdeXb35wbkKTjmReDZHysCBosWJqN7r0jZ/VfgXtIlUNQnVpK7D4nNJSC5BHGi1d108Ppr8MxlF0cJqBSyFJaUfUnvHLyO4cttgaI+NhGB7HE0MaSUks/gU5vwe1gv5tfhmUmAhxME8jbIUtiEDus+fhmDJlgCRY0ylZRZhybKWtNinmYlH9NvL5puO3m9UHOkgzb3xuF5HCkDyhYiSwrYVfQPTpYChTc+E35tG9VJBjGFFNmtVlNMDnjzbx0EBpKq1eTeh2awbArBRuHadBWu6WVB4U/NITfuobYoCZl7QL//wDtr+nTmsgzQh2Kwgtz7QAZWFeGw/RI8s94Kigp1PvzZg2i9x11FDtKn/oZCoZdZxhaAXmG4/ohJKHudLE1Gyu66DOfs10BRR5CU3TKQIrtzj9BAkF991dsMslTZEClLsI+jFmANZYFAdAJl9QG03jWH9GrcFh9QTP4Of6GfJGSpsv1J2aoEKRuWCANNJNqOFAaPAW36rVRMCjVf6ZCtqYF2p6Asxg5mWK6tQamY9RCs8z1wF+FxTR5UqYT/3GC7oCkMHcjxKguq6cnl+Egf2whip3C9Yu56jk+GXXOtv1XIa8L1f3AFkHe9az83AmNanwV/bhfa5JKJ3n1slCUL8dk7CNfvVFMfySRThoxbK7fh18tTZXI2QeySLk88IRGsbHkqQj6wUJ72G5CloCXKZrdbLPgVMgVfQMq5m97bfQWOOeVbaK02nSA2ofn2y662UJE47horLZTe38oDjdxQUhmawocxa0OJ5hXjnZE4w1y0uc/iULKGfk+xNuZxI/BnjhFs+THPq4phmTsbeYPXRjFsJJ+NSMlnInHkxrwzGDjR3uBcG1/B/b/TwZkhubb6tP2oVfTAD2G4kw9vYiA2h+zy4GwYxd7S4qGOgd6oqVn6re1DTXiO4e4wPF+yQlF4ZCBfheSPIjJn+ciS/w93qjA6aZYqeQ5D3dTqvuE6GZNTkov5vqsYvLh7j8u1sWWkLIdBQR+q+XdtaKGhJCWBDpkwgSw9gRpKyoNKw6rjCLCDP4yVflSgWFwt3C0HSUo2BTFYX28fVAaWPpDx7wtwjOSSUszawnUT0KTudlfrFQwZ3WNf867CNZQhk/C8kIFUhJLt/O3Jzn62IYNwrUvA8zws4W61CGlDSfugXMz5pJgiSFYyXMYiRXdH4GmyqaR9UHLxzxG41KAwpZxRPN4kRf85Z5I4MvYfFUFGfemJG40AAAAASUVORK5CYII=" },
};
private Task OnFileChange(UploadFile file)
--
Gitee
From 22373c8ec4cdf3b08b339a33f9dc7ee4ab042ae1 Mon Sep 17 00:00:00 2001
From: zhangpeihang <948869991@qq.com>
Date: Tue, 25 Jul 2023 00:03:18 +0800
Subject: [PATCH 2/4] =?UTF-8?q?doc:=20=E9=87=8D=E6=9E=84=20treeview=20?=
=?UTF-8?q?=E6=96=87=E6=A1=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../TreeViews/TreeViewAccordionModel.razor | 28 ---
.../Demos/TreeViews/TreeViewCheckbox.razor | 54 ------
.../TreeViews/TreeViewCheckedItems.razor | 15 --
.../TreeViews/TreeViewDefauleExpand.razor | 12 --
.../Demos/TreeViews/TreeViewNormal.razor | 15 --
.../TreeViews/TreeViewShowSkeleton.razor | 35 ----
.../TreeViews/TreeViewTreeClickExpand.razor | 5 -
.../TreeViews/TreeViewTreeCustomNode.razor | 46 -----
.../Demos/TreeViews/TreeViewTreeDisable.razor | 12 --
.../TreeViews/TreeViewTreeDisplayIcon.razor | 5 -
.../TreeViews/TreeViewTreeLazyLoading.razor | 30 ---
.../TreeViews/TreeViewTreeNodeColor.razor | 12 --
.../TreeViewTreeValidationForm.razor | 16 --
.../Samples/TreeViews.razor | 101 ++++++----
.../Samples/TreeViews.razor.cs | 182 ++++++++++++++++++
15 files changed, 248 insertions(+), 320 deletions(-)
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewAccordionModel.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewCheckbox.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewCheckedItems.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewDefauleExpand.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewNormal.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewShowSkeleton.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeClickExpand.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeCustomNode.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeDisable.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeDisplayIcon.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeLazyLoading.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeNodeColor.razor
delete mode 100644 src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeValidationForm.razor
diff --git a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewAccordionModel.razor b/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewAccordionModel.razor
deleted file mode 100644
index 5af8793f8..000000000
--- a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewAccordionModel.razor
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-@code {
- private static List> GetAccordionItems()
- {
- var ret = TreeFoo.GetTreeItems();
- ret[1].Items[0].HasChildren = true;
- return ret;
- }
-
- private static async Task>> OnExpandNodeAsync(TreeViewItem node)
- {
- await Task.Delay(800);
- var item = node.Value;
- return new TreeViewItem[]
- {
- new TreeViewItem(new TreeFoo() { Id = $"{item.Id}-101", ParentId = item.Id })
- {
- Text = "懒加载子节点1",
- HasChildren = true
- },
- new TreeViewItem(new TreeFoo(){ Id = $"{item.Id}-102", ParentId = item.Id })
- {
- Text = "懒加载子节点2"
- }
- };
- }
-}
diff --git a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewCheckbox.razor b/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewCheckbox.razor
deleted file mode 100644
index 0bb2c180e..000000000
--- a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewCheckbox.razor
+++ /dev/null
@@ -1,54 +0,0 @@
-@inject IStringLocalizer Localizer
-
-
-
-
-
-@code {
- [NotNull]
- private ConsoleLogger? Logger { get; set; }
-
- private bool AutoCheckChildren { get; set; }
-
- private bool AutoCheckParent { get; set; }
-
- private void OnRefresh()
- {
- CheckedItems = GetCheckedItems();
- }
-
- private List> CheckedItems { get; set; } = GetCheckedItems();
-
- private static List> GetCheckedItems()
- {
- var ret = TreeFoo.GetTreeItems();
- ret[1].IsActive = true;
- ret[1].Items[1].CheckedState = CheckboxState.Checked;
- return ret;
- }
-
- private bool IsReset { get; set; }
-
- private List ResetItems { get; } = new List()
- {
- new("True", "Reset"),
- new("False", "Keep")
- };
-
- private Task OnTreeItemChecked(List> items)
- {
- Logger.Log($"当前共选中{items.Count}项");
- return Task.CompletedTask;
- }
-}
diff --git a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewCheckedItems.razor b/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewCheckedItems.razor
deleted file mode 100644
index 56ba13493..000000000
--- a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewCheckedItems.razor
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-@code {
- [NotNull]
- private ConsoleLogger? Logger { get; set; }
-
- private List> Items { get; set; } = TreeFoo.GetTreeItems();
-
- private Task OnTreeItemChecked(List> items)
- {
- Logger.Log($"当前共选中{items.Count}项");
- return Task.CompletedTask;
- }
-}
diff --git a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewDefauleExpand.razor b/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewDefauleExpand.razor
deleted file mode 100644
index ff7b7ab00..000000000
--- a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewDefauleExpand.razor
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-@code {
- private List> ExpandItems { get; set; } = GetExpandItems();
-
- private static List> GetExpandItems()
- {
- var ret = TreeFoo.GetTreeItems();
- ret[1].IsExpand = true;
- return ret;
- }
-}
diff --git a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewNormal.razor b/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewNormal.razor
deleted file mode 100644
index 050a7222a..000000000
--- a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewNormal.razor
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-@code {
- [NotNull]
- private ConsoleLogger? Logger { get; set; }
-
- private Task OnTreeItemClick(TreeViewItem item)
- {
- Logger.Log($"TreeItem: {item.Text} clicked");
- return Task.CompletedTask;
- }
-
- private List> Items { get; set; } = TreeFoo.GetTreeItems();
-}
diff --git a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewShowSkeleton.razor b/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewShowSkeleton.razor
deleted file mode 100644
index ca67df5ce..000000000
--- a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewShowSkeleton.razor
+++ /dev/null
@@ -1,35 +0,0 @@
-@inject IStringLocalizer Localizer
-
-
-
-
-@code {
- private List>? AsyncItems { get; set; }
-
- private async Task OnLoadAsyncItems()
- {
- AsyncItems = null;
- await Task.Delay(2000);
- AsyncItems = TreeFoo.GetTreeItems();
- AsyncItems[2].Text = "延时加载";
- AsyncItems[2].HasChildren = true;
- }
-
- private static async Task>> OnExpandNodeAsync(TreeViewItem node)
- {
- await Task.Delay(800);
- var item = node.Value;
- return new TreeViewItem[]
- {
- new TreeViewItem(new TreeFoo() { Id = $"{item.Id}-101", ParentId = item.Id })
- {
- Text = "懒加载子节点1",
- HasChildren = true
- },
- new TreeViewItem(new TreeFoo(){ Id = $"{item.Id}-102", ParentId = item.Id })
- {
- Text = "懒加载子节点2"
- }
- };
- }
-}
diff --git a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeClickExpand.razor b/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeClickExpand.razor
deleted file mode 100644
index 820e48d6f..000000000
--- a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeClickExpand.razor
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-@code {
- private List> Items { get; set; } = TreeFoo.GetTreeItems();
-}
diff --git a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeCustomNode.razor b/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeCustomNode.razor
deleted file mode 100644
index 414dd633f..000000000
--- a/src/BootstrapBlazor.Shared/Demos/TreeViews/TreeViewTreeCustomNode.razor
+++ /dev/null
@@ -1,46 +0,0 @@
-@using Microsoft.AspNetCore.Components.Rendering
-
-
-@code {
- private static List> GetTemplateItems()
- {
- var ret = TreeFoo.GetTreeItems();
- ret[0].Template = foo => BootstrapDynamicComponent.CreateComponent(new Dictionary()
- {
- [nameof(CustomerTreeItem.Foo)] = foo
- }).Render();
- return ret;
- }
-
- private class CustomerTreeItem : ComponentBase
- {
- [Inject]
- [NotNull]
- private ToastService? ToastService { get; set; }
-
- [Parameter]
- [NotNull]
- public TreeFoo? Foo { get; set; }
-
- ///
- /// BuildRenderTree
- ///
- ///
- protected override void BuildRenderTree(RenderTreeBuilder builder)
- {
- builder.OpenElement(3, "span");
- builder.AddAttribute(4, "class", "me-3");
- builder.AddContent(5, Foo.Text);
- builder.CloseElement();
-
- builder.OpenComponent
+
+
+
+
- @((MarkupString)Localizer["TreeViewTreeDisableDescription"].Value)
+ Name="TreeDisable">
+ @((MarkupString)Localizer["TreeViewTreeDisableDescription"].Value)
+
+
- @((MarkupString)Localizer["TreeViewAccordionModelDescription"].Value)
+ Name="AccordionModel">
+ @((MarkupString)Localizer["TreeViewAccordionModelDescription"].Value)
+
+
-
+ Name="DefauleExpand">
+
@((MarkupString)Localizer["TreeViewDefauleExpandDescription"].Value)
+
+
-
+ Name="TreeDisplayIcon">
+
@((MarkupString)Localizer["TreeViewTreeDisplayIconDescription"].Value)
+
+
-
+ Name="TreeClickExpand">
+
@((MarkupString)Localizer["TreeViewTreeClickExpandDescription"].Value)
+
+
- @((MarkupString)Localizer["TreeViewTreeValidationFormDescription"].Value)
+ Name="TreeValidationForm">
+ @((MarkupString)Localizer["TreeViewTreeValidationFormDescription"].Value)
+
+
+
+
-
+ Name="TreeLazyLoading">
+
@((MarkupString)Localizer["TreeViewTreeLazyLoadingDescription"].Value)
+
+
+ Name="TreeCustomNode">
+
+
+ Name="TreeNodeColor">
+
+
+ Name="CheckedItems">
+
+
+
+ Name="ShowSkeleton">
+
+
diff --git a/src/BootstrapBlazor.Shared/Samples/TreeViews.razor.cs b/src/BootstrapBlazor.Shared/Samples/TreeViews.razor.cs
index c6a6b86d6..28bd3e198 100644
--- a/src/BootstrapBlazor.Shared/Samples/TreeViews.razor.cs
+++ b/src/BootstrapBlazor.Shared/Samples/TreeViews.razor.cs
@@ -2,6 +2,9 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
+using Microsoft.AspNetCore.Components.Rendering;
+using Microsoft.AspNetCore.Components.Web;
+
namespace BootstrapBlazor.Shared.Samples;
///
@@ -9,6 +12,185 @@ namespace BootstrapBlazor.Shared.Samples;
///
public sealed partial class TreeViews
{
+ [NotNull]
+ private ConsoleLogger? Logger { get; set; }
+
+ private List> Items { get; set; } = TreeFoo.GetTreeItems();
+
+ private bool AutoCheckChildren { get; set; }
+
+ private bool AutoCheckParent { get; set; }
+
+ private List> DisabledItems { get; set; } = GetDisabledItems();
+
+ private List> ExpandItems { get; set; } = GetExpandItems();
+
+ private List> CheckedItems { get; set; } = GetCheckedItems();
+
+ private static List> GetIconItems() => TreeFoo.GetTreeItems();
+
+ private List> GetClickExpandItems { get; set; } = TreeFoo.GetTreeItems();
+
+ private List> GetFormItems { get; set; } = TreeFoo.GetTreeItems();
+
+ private List> CheckedItems2 { get; set; } = TreeFoo.GetTreeItems();
+
+ private List>? AsyncItems { get; set; }
+
+ private Foo Model => Foo.Generate(LocalizerFoo);
+
+ private Task OnTreeItemClick(TreeViewItem item)
+ {
+ Logger.Log($"TreeItem: {item.Text} clicked");
+ return Task.CompletedTask;
+ }
+
+ private void OnRefresh()
+ {
+ CheckedItems = GetCheckedItems();
+ }
+
+ private static List> GetCheckedItems()
+ {
+ var ret = TreeFoo.GetTreeItems();
+ ret[1].IsActive = true;
+ ret[1].Items[1].CheckedState = CheckboxState.Checked;
+ return ret;
+ }
+
+ private bool IsReset { get; set; }
+
+ private List ResetItems { get; } = new List()
+ {
+ new("True", "Reset"),
+ new("False", "Keep")
+ };
+
+ private Task OnTreeItemChecked(List> items)
+ {
+ Logger.Log($"当前共选中{items.Count}项");
+ return Task.CompletedTask;
+ }
+
+ private static List> GetDisabledItems()
+ {
+ var ret = TreeFoo.GetTreeItems();
+ ret[1].Items[1].IsDisabled = true;
+ return ret;
+ }
+
+ private static List> GetAccordionItems()
+ {
+ var ret = TreeFoo.GetTreeItems();
+ ret[1].Items[0].HasChildren = true;
+ return ret;
+ }
+
+ private static async Task>> OnExpandNodeAsync(TreeViewItem node)
+ {
+ await Task.Delay(800);
+ var item = node.Value;
+ return new TreeViewItem[]
+ {
+ new TreeViewItem(new TreeFoo() { Id = $"{item.Id}-101", ParentId = item.Id })
+ {
+ Text = "懒加载子节点1",
+ HasChildren = true
+ },
+ new TreeViewItem(new TreeFoo(){ Id = $"{item.Id}-102", ParentId = item.Id })
+ {
+ Text = "懒加载子节点2"
+ }
+ };
+ }
+
+ private static List> GetExpandItems()
+ {
+ var ret = TreeFoo.GetTreeItems();
+ ret[1].IsExpand = true;
+ return ret;
+ }
+
+ private Task OnFormTreeItemClick(TreeViewItem item)
+ {
+ return Task.CompletedTask;
+ }
+
+ private static List> GetLazyItems()
+ {
+ var ret = TreeFoo.GetTreeItems();
+ ret[1].Items[0].IsExpand = true;
+ ret[2].Text = "懒加载延时";
+ ret[2].HasChildren = true;
+ return ret;
+ }
+
+ private static List> GetTemplateItems()
+ {
+ var ret = TreeFoo.GetTreeItems();
+ ret[0].Template = foo => BootstrapDynamicComponent.CreateComponent(new Dictionary()
+ {
+ [nameof(CustomerTreeItem.Foo)] = foo
+ }).Render();
+ return ret;
+ }
+
+ private static List> GetColorItems()
+ {
+ var ret = TreeFoo.GetTreeItems();
+ ret[0].CssClass = "text-primary";
+ ret[1].CssClass = "text-success";
+ ret[2].CssClass = "text-danger";
+ return ret;
+ }
+
+ private Task OnTreeItemChecked2(List> items)
+ {
+ Logger.Log($"当前共选中{items.Count}项");
+ return Task.CompletedTask;
+ }
+
+ private async Task OnLoadAsyncItems()
+ {
+ AsyncItems = null;
+ await Task.Delay(2000);
+ AsyncItems = TreeFoo.GetTreeItems();
+ AsyncItems[2].Text = "延时加载";
+ AsyncItems[2].HasChildren = true;
+ }
+
+ private class CustomerTreeItem : ComponentBase
+ {
+ [Inject]
+ [NotNull]
+ private ToastService? ToastService { get; set; }
+
+ [Parameter]
+ [NotNull]
+ public TreeFoo? Foo { get; set; }
+
+ ///
+ /// BuildRenderTree
+ ///
+ ///
+ protected override void BuildRenderTree(RenderTreeBuilder builder)
+ {
+ builder.OpenElement(3, "span");
+ builder.AddAttribute(4, "class", "me-3");
+ builder.AddContent(5, Foo.Text);
+ builder.CloseElement();
+
+ builder.OpenComponent