Skip to content

Commit 87158c7

Browse files
authored
refactor(Task): redesign toggle loading mask (#7864)
1 parent 29ad200 commit 87158c7

File tree

4 files changed

+17
-21
lines changed

4 files changed

+17
-21
lines changed

src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public partial class Table<TItem>
4141
/// <para lang="zh">获得/设置 是否正在查询数据</para>
4242
/// <para lang="en">Gets or sets Whether is querying data</para>
4343
/// </summary>
44-
private bool IsLoading { get; set; }
44+
private bool _isShowLoading;
4545

4646
/// <summary>
4747
/// <para lang="zh">获得 渲染模式</para>
@@ -500,13 +500,13 @@ private async Task QueryAsync(bool shouldRender, int? pageIndex = null, bool tri
500500
}
501501
else
502502
{
503-
await InternalToggleLoading(true);
504503
if (pageIndex.HasValue)
505504
{
506505
PageIndex = pageIndex.Value;
507506
}
507+
await ToggleLoading(true);
508508
await QueryData(triggerByPagination);
509-
await InternalToggleLoading(false);
509+
await ToggleLoading(false);
510510
}
511511

512512
if (shouldRender)
@@ -528,24 +528,18 @@ private async Task QueryAsync(bool shouldRender, int? pageIndex = null, bool tri
528528
/// <param name="state"><para lang="zh">true 时显示,false 时隐藏</para><para lang="en">true to display, false to hide</para></param>
529529
public async ValueTask ToggleLoading(bool state)
530530
{
531-
if (ShowLoading)
531+
if (!ShowLoading)
532532
{
533-
IsLoading = state;
534-
await InvokeVoidAsync("load", Id, state ? "show" : "hide");
533+
return;
535534
}
536-
}
537535

538-
/// <summary>
539-
/// <para lang="zh">显示/隐藏 Loading 遮罩</para>
540-
/// <para lang="en">Show/Hide Loading Mask</para>
541-
/// </summary>
542-
/// <param name="state"><para lang="zh">true 时显示,false 时隐藏</para><para lang="en">true to display, false to hide</para></param>
543-
protected async ValueTask InternalToggleLoading(bool state)
544-
{
545-
if (ShowLoading && !IsLoading)
536+
if (_isShowLoading == state)
546537
{
547-
await InvokeVoidAsync("load", Id, state ? "show" : "hide");
538+
return;
548539
}
540+
541+
_isShowLoading = state;
542+
await InvokeVoidAsync("toggleLoadMask", Id, state ? "show" : "hide");
549543
}
550544

551545
/// <summary>

src/BootstrapBlazor/Components/Table/Table.razor.Toolbar.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,7 @@ private bool GetColumnsListState(ColumnVisibleItem item)
584584
/// </summary>
585585
public async Task AddAsync()
586586
{
587+
await ToggleLoading(true);
587588
if (DynamicContext != null)
588589
{
589590
// <para lang="zh">数据源为 DataTable 新建后重建行与列</para>
@@ -605,7 +606,6 @@ public async Task AddAsync()
605606
}
606607
else
607608
{
608-
await ToggleLoading(true);
609609
await InternalOnAddAsync();
610610
EditModalTitleString = AddModalTitle;
611611
if (EditMode == EditMode.Popup)
@@ -628,8 +628,8 @@ public async Task AddAsync()
628628
await ShowEditDrawer(ItemChangedType.Add);
629629
}
630630
await OnSelectedRowsChanged();
631-
await ToggleLoading(false);
632631
}
632+
await ToggleLoading(false);
633633
}
634634

635635
private bool ShowEditForm { get; set; }

src/BootstrapBlazor/Components/Table/Table.razor.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1428,7 +1428,6 @@ private async Task ReloadColumnOrdersFromBrowserAsync(List<ITableColumn> columns
14281428

14291429
private async Task ProcessFirstRender()
14301430
{
1431-
IsLoading = true;
14321431

14331432
// 设置渲染完毕
14341433
_firstRender = false;
@@ -1444,7 +1443,6 @@ private async Task ProcessFirstRender()
14441443

14451444
// 恢复自动查询功能
14461445
_autoQuery = true;
1447-
IsLoading = false;
14481446
}
14491447

14501448
/// <summary>
@@ -1734,7 +1732,11 @@ private async ValueTask<ItemsProviderResult<TItem>> LoadItems(ItemsProviderReque
17341732
{
17351733
StartIndex = _isFilterTrigger ? 0 : request.StartIndex;
17361734
_pageItems = request.Count;
1735+
1736+
await ToggleLoading(true);
17371737
await QueryData();
1738+
await ToggleLoading(false);
1739+
17381740
return new ItemsProviderResult<TItem>(QueryItems, TotalCount);
17391741
}
17401742

src/BootstrapBlazor/Components/Table/Table.razor.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ export function sort(id) {
208208
}
209209
}
210210

211-
export function load(id, method) {
211+
export function toggleLoadMask(id, method) {
212212
const table = Data.get(id)
213213
if (table) {
214214
const loader = [...table.el.children].find(el => el.classList.contains('table-loader'));

0 commit comments

Comments
 (0)