Refactor:
- 重构了 VariableTableDataService 中的 AddVariableTable 方法,使其返回值从 bool 变为新表的 ID (int)。这使得服务层更加健壮,并能向调用方提供新创建实体的确切ID。 Fix: - 修复了 DeviceDetailViewModel 在创建变量表后UI不自动更新的Bug。现在视图模型会正确地将新表添加到UI集合中,确保了界面的即时刷新。 Feat: - 为 DeviceDetailViewModel 添加了 IsBusy 状态。现在“添加”、“编辑”和“删除”等异步操作会更新此状态,防止了用户重复点击,并允许UI在处理期间显示加载指示,提升了用户体验。
This commit is contained in:
@@ -14,8 +14,6 @@ public class VariableTableDataService : IVariableTableDataService
|
||||
private readonly IDataStorageService _dataStorageService;
|
||||
private readonly IAppDataCenterService _appDataCenterService;
|
||||
private readonly IMenuDataService _menuDataService;
|
||||
// Removed circular dependency by not injecting IDeviceDataService
|
||||
// private readonly IDeviceDataService _deviceDataService;
|
||||
|
||||
|
||||
|
||||
@@ -40,11 +38,11 @@ public class VariableTableDataService : IVariableTableDataService
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> AddVariableTable(VariableTableDto variableTableDto,
|
||||
public async Task<int> AddVariableTable(VariableTableDto variableTableDto,
|
||||
MenuBeanDto menuDto = null, bool isAddDb = false)
|
||||
{
|
||||
if (variableTableDto == null)
|
||||
return false;
|
||||
return 0;
|
||||
|
||||
if (isAddDb && menuDto != null)
|
||||
{
|
||||
@@ -53,22 +51,14 @@ public class VariableTableDataService : IVariableTableDataService
|
||||
createDto.DeviceId = variableTableDto.DeviceId;
|
||||
createDto.Menu = menuDto;
|
||||
var resDto = await _appDataCenterService.VariableTableManagementService.CreateVariableTableAsync(createDto);
|
||||
_mapper.Map(resDto.VariableTable, variableTableDto);
|
||||
|
||||
_menuDataService.AddMenuItem(_mapper.Map<MenuItemViewModel>(resDto.Menu));
|
||||
return resDto.VariableTable.Id;
|
||||
}
|
||||
|
||||
// 添加变量表到内存的操作现在在服务内部完成,无需额外调用
|
||||
|
||||
// var device = _deviceDataService.Devices.FirstOrDefault(d => d.Id == variableTableDto.DeviceId);
|
||||
// if (device != null)
|
||||
// {
|
||||
// var variableTableItemViewModel = _mapper.Map<VariableTableItemViewModel>(variableTableDto);
|
||||
// variableTableItemViewModel.Device = device;
|
||||
// device.VariableTables.Add(variableTableItemViewModel);
|
||||
// VariableTables.Add(variableTableItemViewModel);
|
||||
// }
|
||||
|
||||
return true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user