初步完成报警设置

This commit is contained in:
2025-09-12 12:26:57 +08:00
parent c8d7543c7e
commit 071347bc91
8 changed files with 216 additions and 17 deletions

View File

@@ -764,6 +764,57 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
}
}
/// <summary>
/// 修改选定变量的报警设置。
/// </summary>
[RelayCommand]
public async Task ChangeAlarmSettings()
{
// 检查是否有变量被选中
if (SelectedVariables.Count == 0)
{
_notificationService.ShowInfo("请选择要修改报警设置的变量");
return;
}
// 获取选中的变量列表
var validVariables = SelectedVariables.Cast<VariableItemViewModel>()
.ToList();
// 显示报警设置对话框,并传入第一个变量的当前报警设置作为默认值
var viewModel = new AlarmSettingsDialogViewModel(
validVariables.First().IsAlarmEnabled,
validVariables.First().AlarmMinValue,
validVariables.First().AlarmMaxValue);
var result = await _dialogService.ShowDialogAsync(viewModel);
if (result != null)
{
// 更新所有选定变量的报警设置
foreach (var variable in validVariables)
{
variable.IsAlarmEnabled = result.IsAlarmEnabled;
variable.AlarmMinValue = result.AlarmMinValue;
variable.AlarmMaxValue = result.AlarmMaxValue;
variable.UpdatedAt = DateTime.Now;
}
// 批量更新数据库中的变量数据
var variableDtos = _mapper.Map<List<VariableDto>>(validVariables);
var updateResult = await _variableAppService.UpdateVariablesAsync(variableDtos);
if (updateResult > 0)
{
// 显示成功通知
_notificationService.ShowSuccess($"已成功更新 {validVariables.Count} 个变量的报警设置");
}
else
{
_notificationService.ShowError("更新报警设置失败");
}
}
}
/// <summary>
/// 当变量表的启用/禁用状态改变时调用。
/// 更新数据库中变量表的激活状态,并显示相应的通知。