Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(TreeView): treeview items数据类型更改 #5535

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ private Task OnMaxSelectedCountExceed()
return ToastService.Information(Localizer["OnMaxSelectedCountExceedTitle"], Localizer["OnMaxSelectedCountExceedContent", 2]);
}

private Task OnTreeItemChecked(List<TreeViewItem<TreeFoo>> items)
private Task OnTreeItemChecked(IList<TreeViewItem<TreeFoo>> items)
{
Logger2.Log($"当前共选中{items.Count}项");
return Task.CompletedTask;
Expand Down Expand Up @@ -149,7 +149,7 @@ private static Task OnFormTreeItemClick(TreeViewItem<TreeFoo> item)
return Task.CompletedTask;
}

private Task OnTreeItemChecked2(List<TreeViewItem<TreeFoo>> items)
private Task OnTreeItemChecked2(IList<TreeViewItem<TreeFoo>> items)
{
Logger3.Log($"当前共选中{items.Count}项");
return Task.CompletedTask;
Expand Down Expand Up @@ -191,7 +191,7 @@ private Task SelectedItemOnChanged(SelectedItem selectedItem)
return ret;
}

private static async Task<List<TreeViewItem<TreeFoo>>?> OnSearchAsync(string searchText)
private static async Task<IList<TreeViewItem<TreeFoo>>?> OnSearchAsync(string searchText)
{
await Task.Delay(20);

Expand Down
30 changes: 15 additions & 15 deletions src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -158,20 +158,20 @@ public partial class TreeView<TItem> : IModelEqualityComparer<TItem>
/// </summary>
/// <remarks>通过设置 <see cref="ShowSearch"/> 开启</remarks>
[Parameter]
public Func<string?, Task<List<TreeViewItem<TItem>>?>>? OnSearchAsync { get; set; }
public Func<string?, Task<IList<TreeViewItem<TItem>>?>>? OnSearchAsync { get; set; }

/// <summary>
/// 获得/设置 带层次数据集合
/// </summary>
[Parameter]
[NotNull]
public List<TreeViewItem<TItem>>? Items { get; set; }
public IList<TreeViewItem<TItem>>? Items { get; set; }

///// <summary>
///// 获得/设置 扁平化数据集合注意 <see cref="TreeViewItem{TItem}.Parent"/> 参数一定要赋值,不然无法呈现层次结构
///// </summary>
//[Parameter]
//public List<TreeViewItem<TItem>>? FlatItems { get; set; }
//public IList<TreeViewItem<TItem>>? FlatItems { get; set; }

/// <summary>
/// 获得/设置 是否显示 CheckBox 默认 false 不显示
Expand Down Expand Up @@ -207,7 +207,7 @@ public partial class TreeView<TItem> : IModelEqualityComparer<TItem>
/// 获得/设置 树形控件节点选中时回调委托
/// </summary>
[Parameter]
public Func<List<TreeViewItem<TItem>>, Task>? OnTreeItemChecked { get; set; }
public Func<IList<TreeViewItem<TItem>>, Task>? OnTreeItemChecked { get; set; }

/// <summary>
/// 获得/设置 点击节点获取子数据集合回调方法
Expand Down Expand Up @@ -450,7 +450,7 @@ public async ValueTask TriggerKeyDown(string key)
/// <param name="items"></param>
/// <returns></returns>
[JSInvokable]
public Task<List<CheckboxState>> GetParentsState(List<int> items)
public Task<IList<CheckboxState>> GetParentsState(IList<int> items)
{
var rows = Rows;
var result = items.Select(i =>
Expand All @@ -464,12 +464,12 @@ public Task<List<CheckboxState>> GetParentsState(List<int> items)
item.CheckedState = checkedState;
return checkedState;
}).ToList();
return Task.FromResult(result);
return Task.FromResult<IList<CheckboxState>>(result);
}

private static bool IsExpand(TreeViewItem<TItem> item) => item.IsExpand && item.Items.Count > 0;

private List<TreeViewItem<TItem>> GetItems(TreeViewItem<TItem> item) => item.Parent?.Items ?? Items;
private IList<TreeViewItem<TItem>> GetItems(TreeViewItem<TItem> item) => item.Parent?.Items ?? Items;

private async Task ActiveTreeViewItem(string key, TreeViewItem<TItem> item)
{
Expand Down Expand Up @@ -615,7 +615,7 @@ private async Task OnEnterAsync(string? searchText)

private Task OnEscAsync(string? searchText) => OnClickResetSearch();

private List<TreeViewItem<TItem>>? _searchItems;
private IList<TreeViewItem<TItem>>? _searchItems;

private async Task OnClickSearch()
{
Expand Down Expand Up @@ -649,7 +649,7 @@ public void SetActiveItem(TreeViewItem<TItem>? item)
/// <summary>
/// 重新设置 <see cref="Items"/> 数据源方法
/// </summary>
public void SetItems(List<TreeViewItem<TItem>> items)
public void SetItems(IList<TreeViewItem<TItem>> items)
{
//FlatItems = null;
Items = items;
Expand All @@ -661,7 +661,7 @@ public void SetItems(List<TreeViewItem<TItem>> items)
///// 重新设置 <see cref="FlatItems"/> 数据源方法
///// </summary>
///// <param name="flatItems"></param>
//public void SetFlatItems(List<TreeViewItem<TItem>> flatItems)
//public void SetFlatItems(IList<TreeViewItem<TItem>> flatItems)
//{
// Items = null;
// FlatItems = flatItems;
Expand Down Expand Up @@ -793,7 +793,7 @@ private async Task OnCheckStateChanged(TreeViewItem<TItem> item, CheckboxState s
/// </summary>
public void ClearCheckedItems()
{
Items.ForEach(item =>
foreach (var item in Items)
{
item.CheckedState = CheckboxState.UnChecked;
TreeNodeStateCache.ToggleCheck(item);
Expand All @@ -802,7 +802,7 @@ public void ClearCheckedItems()
s.CheckedState = CheckboxState.UnChecked;
TreeNodeStateCache.ToggleCheck(s);
});
});
}
StateHasChanged();
}

Expand Down Expand Up @@ -879,9 +879,9 @@ private void OnTouchEnd()
TouchStart = false;
}

private List<TreeViewItem<TItem>>? _rows = null;
private IList<TreeViewItem<TItem>>? _rows = null;

private List<TreeViewItem<TItem>> Rows
private IList<TreeViewItem<TItem>> Rows
{
get
{
Expand All @@ -891,7 +891,7 @@ private List<TreeViewItem<TItem>> Rows
}
}

private List<TreeViewItem<TItem>> GetTreeItems() => _searchItems ?? Items;
private IList<TreeViewItem<TItem>> GetTreeItems() => _searchItems ?? Items;

private static string? GetTreeRowStyle(TreeViewItem<TItem> item)
{
Expand Down
6 changes: 3 additions & 3 deletions src/BootstrapBlazor/Misc/ExpandableNodeCache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public async Task CheckExpandAsync(TNode node, Func<TNode, Task<IEnumerable<IExp
/// <param name="ret">查询结果 查无资料时为 null</param>
/// <returns>是否存在 <paramref name="target"/></returns>
/// <remarks>采广度优先搜寻</remarks>
public bool TryFind(List<TNode> items, TItem target, [MaybeNullWhen(false)] out TNode ret)
public bool TryFind(IList<TNode> items, TItem target, [MaybeNullWhen(false)] out TNode ret)
{
ret = Find(items, target);
return ret != null;
Expand All @@ -143,7 +143,7 @@ public bool TryFind(List<TNode> items, TItem target, [MaybeNullWhen(false)] out
/// <param name="target"></param>
/// <returns>查询结果 查无资料时为 null</returns>
/// <remarks>采广度优先搜寻</remarks>
private TNode? Find(List<TNode> items, TItem target) => Find(items, target, out _);
private TNode? Find(IList<TNode> items, TItem target) => Find(items, target, out _);

/// <summary>
/// 在全部树状结构 <paramref name="source"/> 中寻找指定 <paramref name="target"/>
Expand All @@ -153,7 +153,7 @@ public bool TryFind(List<TNode> items, TItem target, [MaybeNullWhen(false)] out
/// <param name="degree">树状阶层,起始为0</param>
/// <returns>查询结果 查无资料时为 null</returns>
/// <remarks>采广度优先搜寻</remarks>
public TNode? Find(List<TNode> source, TItem target, out int degree)
public TNode? Find(IList<TNode> source, TItem target, out int degree)
{
degree = -1;
var ret = source.FirstOrDefault(item => EqualityComparer.Equals(item.Value, target));
Expand Down
8 changes: 4 additions & 4 deletions src/BootstrapBlazor/Misc/TreeNodeCache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ private void IsChecked(TNode node)
CheckChildren(nodes, node);
}

private void CheckChildren(List<ICheckableNode<TItem>> nodes, TNode node)
private void CheckChildren(IList<ICheckableNode<TItem>> nodes, TNode node)
{
if (nodes.Count != 0)
{
Expand Down Expand Up @@ -123,15 +123,15 @@ private void CheckChildren(List<ICheckableNode<TItem>> nodes, TNode node)
/// 重置是否选中状态
/// </summary>
/// <param name="nodes"></param>
public void IsChecked(List<TNode> nodes)
public void IsChecked(IList<TNode> nodes)
{
if (nodes.Count != 0)
{
ResetCheckNodes(nodes);
}
}

private void ResetCheckNodes(List<TNode> items)
private void ResetCheckNodes(IList<TNode> items)
{
// 恢复当前节点状态
foreach (var node in items)
Expand All @@ -153,7 +153,7 @@ private void ResetCheckNodes(List<TNode> items)
/// <param name="nodes">数据集合</param>
/// <param name="node">指定节点</param>
/// <returns></returns>
public TNode? FindParentNode(List<TNode> nodes, TNode node)
public TNode? FindParentNode(IList<TNode> nodes, TNode node)
{
TNode? ret = default;
foreach (var treeNode in nodes)
Expand Down
Loading