新增全量拉取功能,允许用户从远程同步所有物料数据,优化用户体验。更新前端视图以支持新命令,并添加同步状态管理,确保操作的安全性和反馈。

This commit is contained in:
geht
2026-05-09 15:55:36 +08:00
parent 16bb22a113
commit 068d44c53e
2 changed files with 30 additions and 0 deletions

View File

@@ -84,9 +84,13 @@ public class MixerMaterialListViewModel : BaseViewModel
public string ToggleExpandButtonText => _isTreeAllExpanded ? "折叠全部" : "展开全部";
private bool _isSyncing;
public bool IsSyncing { get => _isSyncing; set => SetProperty(ref _isSyncing, value); }
public DelegateCommand SearchCommand { get; }
public DelegateCommand ResetCommand { get; }
public DelegateCommand AddCommand { get; }
public DelegateCommand PullAllCommand { get; }
public DelegateCommand<MesMixerMaterial> EditCommand { get; }
public DelegateCommand<MesMixerMaterial> DeleteCommand { get; }
public DelegateCommand PrevPageCommand { get; }
@@ -120,6 +124,25 @@ public class MixerMaterialListViewModel : BaseViewModel
PrevPageCommand = new DelegateCommand(async () => { if (PageNo > 1) { PageNo--; await LoadAsync(); } });
NextPageCommand = new DelegateCommand(async () => { if ((long)PageNo * PageSize < Total) { PageNo++; await LoadAsync(); } });
ToggleExpandCommand = new DelegateCommand(ToggleExpand);
PullAllCommand = new DelegateCommand(async () =>
{
if (IsSyncing) return;
IsSyncing = true;
try
{
await _mixerMaterialService.SyncFromRemoteAsync();
await LoadAsync();
Growl.Success("全量拉取完成!");
}
catch (Exception ex)
{
Growl.Error($"全量拉取失败:{ex.Message}");
}
finally
{
IsSyncing = false;
}
});
_materialChangedToken = _eventAggregator
.GetEvent<MixerMaterialChangedEvent>()