feat: 增加终到车显示时长设置

This commit is contained in:
denglihong2007
2025-03-13 23:16:51 +08:00
parent afb1194173
commit 0ab07e8536
4 changed files with 38 additions and 8 deletions

View File

@@ -16,6 +16,10 @@ namespace CRSim.Core.Models
/// </summary>
public TimeSpan StopDisplayUntilDepartureDuration { get; set; } = TimeSpan.FromMinutes(1);
/// <summary>
/// 直到终到后多久停止显示
/// </summary>
public TimeSpan StopDisplayFromArrivalDuration { get; set; } = TimeSpan.FromMinutes(10);
public TimeSpan StopCheckInAdvanceDuration { get; set; } = TimeSpan.FromMinutes(2);
public int MaxPages { get; set; } = 3;

View File

@@ -19,6 +19,7 @@ namespace CRSim.Core.Services
_key.SetValue("MaxPages", _settings.MaxPages);
_key.SetValue("StopCheckInAdvanceDuration", (int)_settings.StopCheckInAdvanceDuration.TotalMinutes);
_key.SetValue("StopDisplayUntilDepartureDuration", (int)_settings.StopDisplayUntilDepartureDuration.TotalMinutes);
_key.SetValue("StopDisplayFromArrivalDuration", (int)_settings.StopDisplayFromArrivalDuration.TotalMinutes);
_key.SetValue("PassingCheckInAdvanceDuration", (int)_settings.PassingCheckInAdvanceDuration.TotalMinutes);
_key.SetValue("DepartureCheckInAdvanceDuration", (int)_settings.DepartureCheckInAdvanceDuration.TotalMinutes);
}
@@ -34,13 +35,14 @@ namespace CRSim.Core.Services
else
{
_settings = new Settings();
_settings.TimeOffset = TimeSpan.FromMinutes((int)_key.GetValue("TimeOffset"));
_settings.SwitchPageSeconds = (int)_key.GetValue("SwitchPageSeconds");
_settings.MaxPages = (int)_key.GetValue("MaxPages");
_settings.StopCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopCheckInAdvanceDuration"));
_settings.StopDisplayUntilDepartureDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopDisplayUntilDepartureDuration"));
_settings.PassingCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("PassingCheckInAdvanceDuration"));
_settings.DepartureCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("DepartureCheckInAdvanceDuration"));
if (_key.GetValue("TimeOffset") != null) _settings.TimeOffset = TimeSpan.FromMinutes((int)_key.GetValue("TimeOffset"));
if (_key.GetValue("SwitchPageSeconds") != null) _settings.SwitchPageSeconds = (int)_key.GetValue("SwitchPageSeconds");
if (_key.GetValue("MaxPages") != null) _settings.MaxPages = (int)_key.GetValue("MaxPages");
if (_key.GetValue("StopCheckInAdvanceDuration") != null) _settings.StopCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopCheckInAdvanceDuration"));
if (_key.GetValue("StopDisplayUntilDepartureDuration") != null) _settings.StopDisplayUntilDepartureDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopDisplayUntilDepartureDuration"));
if (_key.GetValue("StopDisplayFromArrivalDuration") != null) _settings.StopDisplayFromArrivalDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopDisplayFromArrivalDuration"));
if (_key.GetValue("PassingCheckInAdvanceDuration") != null) _settings.PassingCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("PassingCheckInAdvanceDuration"));
if (_key.GetValue("DepartureCheckInAdvanceDuration") != null) _settings.DepartureCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("DepartureCheckInAdvanceDuration"));
}
}

View File

@@ -20,6 +20,8 @@
[ObservableProperty]
public string _stopDisplayUntilDepartureDuration;
[ObservableProperty]
public string _stopDisplayFromArrivalDuration;
[ObservableProperty]
public string _stopCheckInAdvanceDuration;
[ObservableProperty]
public string _maxPages;
@@ -44,6 +46,7 @@
DepartureCheckInAdvanceDuration = _settings.DepartureCheckInAdvanceDuration.TotalMinutes.ToString();
PassingCheckInAdvanceDuration = _settings.PassingCheckInAdvanceDuration.TotalMinutes.ToString();
StopDisplayUntilDepartureDuration = _settings.StopDisplayUntilDepartureDuration.TotalMinutes.ToString();
StopDisplayFromArrivalDuration = _settings.StopDisplayFromArrivalDuration.TotalMinutes.ToString();
StopCheckInAdvanceDuration = _settings.StopCheckInAdvanceDuration.TotalMinutes.ToString();
MaxPages = _settings.MaxPages.ToString();
SwitchPageSeconds = _settings.SwitchPageSeconds.ToString();
@@ -68,6 +71,10 @@
{
_settings.StopDisplayUntilDepartureDuration = TimeSpan.FromMinutes(l);
}
if (int.TryParse(StopDisplayFromArrivalDuration, out int p) && p >= 0)
{
_settings.StopDisplayFromArrivalDuration = TimeSpan.FromMinutes(p);
}
if (int.TryParse(StopCheckInAdvanceDuration, out int m) && m >= 0)
{
_settings.StopCheckInAdvanceDuration = TimeSpan.FromMinutes(m);

View File

@@ -242,7 +242,7 @@
Grid.Column="3"/>
</Grid>
</Border>
<Border Style="{StaticResource BottomSettingsCardStyle}">
<Border Style="{StaticResource SettingsCardStyle}">
<Grid Margin="48,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
@@ -259,6 +259,23 @@
Grid.Column="3"/>
</Grid>
</Border>
<Border Style="{StaticResource BottomSettingsCardStyle}">
<Grid Margin="48,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="终到车显示至到达后时长" Style="{StaticResource BodyTextBlockStyle}" VerticalAlignment="Center"
Grid.Column="0"/>
<TextBox Grid.Column="2" Width="72" Text="{Binding ViewModel.StopDisplayFromArrivalDuration, Mode=TwoWay}"
FontFamily="Microsoft YaHei" Margin="0,0,8,0">
</TextBox>
<TextBlock Text="分钟" Style="{StaticResource BodyTextBlockStyle}" VerticalAlignment="Center"
Grid.Column="3"/>
</Grid>
</Border>
</StackPanel>
</Expander.Content>