重构历史记录条数
This commit is contained in:
@@ -30,10 +30,16 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
private readonly INotificationService _notificationService;
|
||||
|
||||
/// <summary>
|
||||
/// 历史记录条数限制
|
||||
/// 加载历史记录条数限制
|
||||
/// </summary>
|
||||
[ObservableProperty]
|
||||
private int? _historyLimit;
|
||||
private int? _initHistoryLimit;
|
||||
|
||||
/// <summary>
|
||||
/// 显示历史记录条数限制
|
||||
/// </summary>
|
||||
[ObservableProperty]
|
||||
private int? _viewHistoryLimit;
|
||||
|
||||
/// <summary>
|
||||
/// 历史记录开始时间
|
||||
@@ -94,7 +100,7 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
_allVariableHistories = new List<VariableHistoryDto>();
|
||||
|
||||
// 初始化默认值
|
||||
_historyLimit = 50; // 默认限制1000条记录
|
||||
_initHistoryLimit = 50; // 默认限制1000条记录
|
||||
_startTime = null;
|
||||
_endTime = null;
|
||||
|
||||
@@ -123,13 +129,13 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
_variableHistoryList.Add(variableHistory);
|
||||
|
||||
// 限制历史记录数量以防止内存溢出
|
||||
if (HistoryLimit.HasValue && _variableHistoryList.Count > HistoryLimit.Value)
|
||||
if (ViewHistoryLimit.HasValue && _variableHistoryList.Count > ViewHistoryLimit.Value)
|
||||
{
|
||||
// 移除最旧的记录
|
||||
_variableHistoryList.RemoveAt(0);
|
||||
}
|
||||
|
||||
// 更新图表数据
|
||||
// 更新图表数据 - 使用更高效的方法处理实时更新
|
||||
UpdateChartData();
|
||||
}
|
||||
|
||||
@@ -147,7 +153,8 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
_variableHistoryList.Clear();
|
||||
var allHistories
|
||||
= await _historyAppService.GetVariableHistoriesAsync(variableId, limit, startTime, endTime);
|
||||
_allVariableHistories = allHistories.ToList();
|
||||
_allVariableHistories = allHistories.OrderBy(v => v.Timestamp)
|
||||
.ToList();
|
||||
_variableHistoryList.AddRange(_allVariableHistories);
|
||||
|
||||
// 更新图表数据
|
||||
@@ -167,7 +174,7 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
{
|
||||
CurrentVariable = variableItem;
|
||||
// 加载所有变量的历史记录
|
||||
LoadAllVariableHistories(variableItem.Id, HistoryLimit, StartTime, EndTime);
|
||||
LoadAllVariableHistories(variableItem.Id, InitHistoryLimit, StartTime, EndTime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,7 +186,7 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
{
|
||||
if (CurrentVariable != null)
|
||||
{
|
||||
LoadAllVariableHistories(CurrentVariable.Id, HistoryLimit, StartTime, EndTime);
|
||||
LoadAllVariableHistories(CurrentVariable.Id, InitHistoryLimit, StartTime, EndTime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,6 +247,7 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
private Axis[] _lineAxisXInstance;
|
||||
private Axis[] _lineAxisYInstance;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 更新图表数据
|
||||
/// </summary>
|
||||
@@ -272,7 +280,7 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
Fill = null,
|
||||
Stroke = new SolidColorPaint(new SKColor(41, 128, 185)) { StrokeThickness = 2 },
|
||||
GeometrySize = 6, // 显示数据点,圆点大小为6
|
||||
LineSmoothness = 0 // 使用直线连接点,也可以设为其他值实现曲线
|
||||
LineSmoothness = 5 // 使用直线连接点,也可以设为其他值实现曲线
|
||||
};
|
||||
|
||||
// 更新序列集合
|
||||
@@ -283,7 +291,8 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
{
|
||||
new Axis
|
||||
{
|
||||
Labeler = value => new DateTime((long)value).ToString("MM-dd HH:mm:ss")
|
||||
Labeler = value => new DateTime((long)value).ToString("MM-dd HH:mm:ss"),
|
||||
// 不设置固定范围,让图表根据数据自动调整
|
||||
}
|
||||
};
|
||||
|
||||
@@ -292,7 +301,7 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
new Axis
|
||||
{
|
||||
Name = CurrentVariable?.Name ?? "值",
|
||||
// MinLimit = 0 // 设置Y轴从0开始
|
||||
MinLimit = 0 // 设置Y轴从0开始
|
||||
}
|
||||
};
|
||||
|
||||
@@ -323,7 +332,7 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
|
||||
currentSeries.Name = CurrentVariable?.Name ?? "变量值";
|
||||
|
||||
// 通知系列更改,但保留当前轴的缩放状态(不需要更新轴)
|
||||
OnPropertyChanged(nameof(LineSeriesCollection));
|
||||
// OnPropertyChanged(nameof(LineSeriesCollection));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user