完成添加设备

This commit is contained in:
2025-07-28 11:33:52 +08:00
parent f7ad5cd9fe
commit 442ee3f9c1
2 changed files with 53 additions and 24 deletions

View File

@@ -45,6 +45,7 @@ public partial class DataServices : ObservableRecipient, IRecipient<LoadMessage>
// 菜单树列表。 // 菜单树列表。
[ObservableProperty] [ObservableProperty]
private ObservableCollection<MenuBeanItemViewModel> _menus; private ObservableCollection<MenuBeanItemViewModel> _menus;
// 菜单树列表。 // 菜单树列表。
[ObservableProperty] [ObservableProperty]
private ObservableCollection<MenuBeanItemViewModel> _menuTrees; private ObservableCollection<MenuBeanItemViewModel> _menuTrees;
@@ -72,7 +73,6 @@ public partial class DataServices : ObservableRecipient, IRecipient<LoadMessage>
public event Action<Device, bool> OnDeviceIsActiveChanged; public event Action<Device, bool> OnDeviceIsActiveChanged;
/// <summary> /// <summary>
/// DataServices类的构造函数。 /// DataServices类的构造函数。
/// 注入ILogger<DataServices>,并初始化各个数据仓库。 /// 注入ILogger<DataServices>,并初始化各个数据仓库。
@@ -80,7 +80,8 @@ public partial class DataServices : ObservableRecipient, IRecipient<LoadMessage>
/// <param name="mapper">AutoMapper 实例。</param> /// <param name="mapper">AutoMapper 实例。</param>
/// <param name="varDataRepository"></param> /// <param name="varDataRepository"></param>
public DataServices(IMapper mapper, IDeviceAppService deviceAppService, public DataServices(IMapper mapper, IDeviceAppService deviceAppService,
IVariableTableAppService variableTableAppService, IVariableAppService variableAppService,IMenuService menuService,INavigationService navigationService) IVariableTableAppService variableTableAppService, IVariableAppService variableAppService,
IMenuService menuService, INavigationService navigationService)
{ {
_mapper = mapper; _mapper = mapper;
_deviceAppService = deviceAppService; _deviceAppService = deviceAppService;
@@ -204,7 +205,7 @@ public partial class DataServices : ObservableRecipient, IRecipient<LoadMessage>
{ {
// 这是一个新菜单项,添加到集合中 // 这是一个新菜单项,添加到集合中
// 注意:这里直接添加 IMenuService 返回的 MenuItemViewModel 实例 // 注意:这里直接添加 IMenuService 返回的 MenuItemViewModel 实例
Menus.Add(new MenuBeanItemViewModel(newDto,_navigationService)); Menus.Add(new MenuBeanItemViewModel(newDto, _navigationService));
} }
} }
@@ -244,7 +245,6 @@ public partial class DataServices : ObservableRecipient, IRecipient<LoadMessage>
MenuTrees.Add(menu); MenuTrees.Add(menu);
} }
} }
} }
@@ -280,17 +280,21 @@ public partial class DataServices : ObservableRecipient, IRecipient<LoadMessage>
if (existingItem.SignalType != dto.SignalType) existingItem.SignalType = dto.SignalType; if (existingItem.SignalType != dto.SignalType) existingItem.SignalType = dto.SignalType;
if (existingItem.PollLevel != dto.PollLevel) existingItem.PollLevel = dto.PollLevel; if (existingItem.PollLevel != dto.PollLevel) existingItem.PollLevel = dto.PollLevel;
if (existingItem.IsActive != dto.IsActive) existingItem.IsActive = dto.IsActive; if (existingItem.IsActive != dto.IsActive) existingItem.IsActive = dto.IsActive;
if (existingItem.VariableTableId != dto.VariableTableId) existingItem.VariableTableId = dto.VariableTableId; if (existingItem.VariableTableId != dto.VariableTableId)
existingItem.VariableTableId = dto.VariableTableId;
if (existingItem.OpcUaNodeId != dto.OpcUaNodeId) existingItem.OpcUaNodeId = dto.OpcUaNodeId; if (existingItem.OpcUaNodeId != dto.OpcUaNodeId) existingItem.OpcUaNodeId = dto.OpcUaNodeId;
if (existingItem.IsHistoryEnabled != dto.IsHistoryEnabled) existingItem.IsHistoryEnabled = dto.IsHistoryEnabled; if (existingItem.IsHistoryEnabled != dto.IsHistoryEnabled)
if (existingItem.HistoryDeadband != dto.HistoryDeadband) existingItem.HistoryDeadband = dto.HistoryDeadband; existingItem.IsHistoryEnabled = dto.IsHistoryEnabled;
if (existingItem.HistoryDeadband != dto.HistoryDeadband)
existingItem.HistoryDeadband = dto.HistoryDeadband;
if (existingItem.IsAlarmEnabled != dto.IsAlarmEnabled) existingItem.IsAlarmEnabled = dto.IsAlarmEnabled; if (existingItem.IsAlarmEnabled != dto.IsAlarmEnabled) existingItem.IsAlarmEnabled = dto.IsAlarmEnabled;
if (existingItem.AlarmMinValue != dto.AlarmMinValue) existingItem.AlarmMinValue = dto.AlarmMinValue; if (existingItem.AlarmMinValue != dto.AlarmMinValue) existingItem.AlarmMinValue = dto.AlarmMinValue;
if (existingItem.AlarmMaxValue != dto.AlarmMaxValue) existingItem.AlarmMaxValue = dto.AlarmMaxValue; if (existingItem.AlarmMaxValue != dto.AlarmMaxValue) existingItem.AlarmMaxValue = dto.AlarmMaxValue;
if (existingItem.AlarmDeadband != dto.AlarmDeadband) existingItem.AlarmDeadband = dto.AlarmDeadband; if (existingItem.AlarmDeadband != dto.AlarmDeadband) existingItem.AlarmDeadband = dto.AlarmDeadband;
if (existingItem.Protocol != dto.Protocol) existingItem.Protocol = dto.Protocol; if (existingItem.Protocol != dto.Protocol) existingItem.Protocol = dto.Protocol;
if (existingItem.CSharpDataType != dto.CSharpDataType) existingItem.CSharpDataType = dto.CSharpDataType; if (existingItem.CSharpDataType != dto.CSharpDataType) existingItem.CSharpDataType = dto.CSharpDataType;
if (existingItem.ConversionFormula != dto.ConversionFormula) existingItem.ConversionFormula = dto.ConversionFormula; if (existingItem.ConversionFormula != dto.ConversionFormula)
existingItem.ConversionFormula = dto.ConversionFormula;
if (existingItem.CreatedAt != dto.CreatedAt) existingItem.CreatedAt = dto.CreatedAt; if (existingItem.CreatedAt != dto.CreatedAt) existingItem.CreatedAt = dto.CreatedAt;
if (existingItem.UpdatedAt != dto.UpdatedAt) existingItem.UpdatedAt = dto.UpdatedAt; if (existingItem.UpdatedAt != dto.UpdatedAt) existingItem.UpdatedAt = dto.UpdatedAt;
if (existingItem.UpdatedBy != dto.UpdatedBy) existingItem.UpdatedBy = dto.UpdatedBy; if (existingItem.UpdatedBy != dto.UpdatedBy) existingItem.UpdatedBy = dto.UpdatedBy;
@@ -465,4 +469,32 @@ public partial class DataServices : ObservableRecipient, IRecipient<LoadMessage>
} }
} }
} }
public void AddMenuItem(MenuBeanItemViewModel menuBeanItemViewModel)
{
if (menuBeanItemViewModel == null)
{
return;
}
var deviceMenu = Menus.FirstOrDefault(m => m.Id == menuBeanItemViewModel.ParentId);
if (deviceMenu != null)
{
deviceMenu.Children.Add(menuBeanItemViewModel);
Menus.Add(menuBeanItemViewModel);
}
}
public void AddVariableTable(VariableTableItemViewModel variableTableItemViewModel)
{
if (variableTableItemViewModel == null)
return;
VariableTables.Add(variableTableItemViewModel);
var device = Devices.FirstOrDefault(d => d.Id == variableTableItemViewModel.DeviceId);
if (device != null)
{
device.VariableTables.Add(variableTableItemViewModel);
}
}
} }

View File

@@ -147,18 +147,15 @@ public partial class DevicesViewModel : ViewModelBase, INavigatable
}; };
} }
var addDto = await _deviceAppService.CreateDeviceWithDetailsAsync(dto); var addDto = await _deviceAppService.CreateDeviceWithDetailsAsync(dto);
// 更新界面
DataServices.Devices.Add(_mapper.Map<DeviceItemViewModel>(addDto.Device)); DataServices.Devices.Add(_mapper.Map<DeviceItemViewModel>(addDto.Device));
if (addDto.DeviceMenu != null) DataServices.AddMenuItem(_mapper.Map<MenuBeanItemViewModel>(addDto.DeviceMenu));
{ DataServices.AddVariableTable(_mapper.Map<VariableTableItemViewModel>(addDto.VariableTable));
var deviceMenu = DataServices.Menus.FirstOrDefault(m => m.Id == addDto.DeviceMenu.ParentId); DataServices.AddMenuItem(_mapper.Map<MenuBeanItemViewModel>(addDto.VariableTableMenu));
if (deviceMenu!=null)
{ NotificationHelper.ShowSuccess($"设备添加成功:{addDto.Device.Name}");
deviceMenu.Children.Add(_mapper.Map<MenuBeanItemViewModel>(addDto.DeviceMenu));
}
}
} }
catch (Exception e) catch (Exception e)
{ {