2026-07-03 10:47:27 +08:00
|
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
|
|
using LiveChartsCore;
|
|
|
|
|
using LiveChartsCore.SkiaSharpView;
|
2026-07-06 10:23:41 +08:00
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
using WCTDataMiner.Core.Services;
|
2026-07-03 10:47:27 +08:00
|
|
|
|
|
|
|
|
namespace WCTDataMiner.Wpf.ViewModels;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Qfod 折线图 ViewModel
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class QfodChartViewModel : ObservableObject
|
|
|
|
|
{
|
2026-07-06 10:23:41 +08:00
|
|
|
private readonly ScenarioService _scenarioService;
|
|
|
|
|
private readonly ILogger<QfodChartViewModel> _logger;
|
|
|
|
|
|
2026-07-03 10:47:27 +08:00
|
|
|
[ObservableProperty]
|
2026-07-06 10:23:41 +08:00
|
|
|
private Guid _scenarioId;
|
2026-07-03 10:47:27 +08:00
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private ISeries[] _series;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private Axis[] _xAxes;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private Axis[] _yAxes;
|
|
|
|
|
|
2026-07-06 10:23:41 +08:00
|
|
|
public QfodChartViewModel(
|
|
|
|
|
ScenarioService scenarioService,
|
|
|
|
|
ILogger<QfodChartViewModel> logger)
|
2026-07-03 10:47:27 +08:00
|
|
|
{
|
2026-07-06 10:23:41 +08:00
|
|
|
_scenarioService = scenarioService;
|
|
|
|
|
_logger = logger;
|
|
|
|
|
|
2026-07-03 10:47:27 +08:00
|
|
|
// 初始化图表配置
|
|
|
|
|
Series = Array.Empty<ISeries>();
|
|
|
|
|
XAxes = new Axis[] { new Axis { Name = "Coil Index" } };
|
|
|
|
|
YAxes = new Axis[] { new Axis { Name = "Q Value" } };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task LoadDataAsync()
|
|
|
|
|
{
|
2026-07-06 10:23:41 +08:00
|
|
|
try
|
2026-07-03 10:47:27 +08:00
|
|
|
{
|
2026-07-06 10:23:41 +08:00
|
|
|
// TODO: 从数据库加载 Qfod 数据并构建图表
|
|
|
|
|
Series = new ISeries[]
|
2026-07-03 10:47:27 +08:00
|
|
|
{
|
2026-07-06 10:23:41 +08:00
|
|
|
new LineSeries<double>
|
|
|
|
|
{
|
|
|
|
|
Name = "DeltaQ",
|
|
|
|
|
Values = new double[] { 25, 30, 28 }
|
|
|
|
|
},
|
|
|
|
|
new LineSeries<double>
|
|
|
|
|
{
|
|
|
|
|
Name = "CurrentQ",
|
|
|
|
|
Values = new double[] { 45.5, 50.2, 48.8 }
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
_logger.LogError(ex, "加载 Qfod 图表数据失败: ScenarioId={ScenarioId}", ScenarioId);
|
|
|
|
|
}
|
2026-07-03 10:47:27 +08:00
|
|
|
}
|
2026-07-06 10:23:41 +08:00
|
|
|
}
|