From 5d40483e40da083aa7fdae53d6ce4621673d9b44 Mon Sep 17 00:00:00 2001 From: denglihong2007 <2639367181@qq.com> Date: Mon, 10 Mar 2025 01:24:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=A6=8F=E5=B7=9E?= =?UTF-8?q?=E7=AB=99=E6=A3=80=E7=A5=A8=E5=8F=A3=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CRSim/App.xaml.cs | 4 +- .../StyleImages/Fuzhou/TicketCheckScreen.png | Bin 0 -> 18563 bytes CRSim/CRSim.csproj | 2 + CRSim/Models/StylesInfoData.json | 12 + CRSim/ViewModels/Windows/ScreenViewModel.cs | 3 + .../PrimaryTicketCheckScreenViewModel.cs | 4 +- .../Fuzhou/TicketCheckScreenViewModel.cs | 31 +++ .../BeijingXi/PrimaryScreenView.xaml.cs | 1 + .../PrimaryTicketCheckScreenView.xaml.cs | 5 +- .../ChengduDong/SecondaryScreenView.xaml.cs | 1 + .../ChengduMetro/PlatformScreenView.xaml.cs | 1 + .../Fuzhou/TicketCheckScreenView.xaml | 248 ++++++++++++++++++ .../Fuzhou/TicketCheckScreenView.xaml.cs | 34 +++ .../SecondaryScreenView.xaml.cs | 1 + .../Guangyuan/PrimaryScreenView.xaml.cs | 1 + .../Hanzhong/PlatformScreenView.xaml.cs | 1 + .../Stations/Harbin/PrimaryScreenView.xaml.cs | 1 + .../Stations/Jinanxi/SmallScreenView.xaml.cs | 1 + .../Shanghai/OutsideScreenView.xaml.cs | 1 + .../Stations/Tianjin/PlatformScreenView.xaml | 4 +- .../Tianjin/PlatformScreenView.xaml.cs | 1 + .../Stations/Zibo/PrimaryScreenView.xaml.cs | 1 + .../Stations/Zibo/SecondaryScreenView.xaml.cs | 1 + 23 files changed, 352 insertions(+), 7 deletions(-) create mode 100644 CRSim/Assets/StyleImages/Fuzhou/TicketCheckScreen.png create mode 100644 CRSim/ViewModels/Windows/Stations/Fuzhou/TicketCheckScreenViewModel.cs create mode 100644 CRSim/Views/Windows/Stations/Fuzhou/TicketCheckScreenView.xaml create mode 100644 CRSim/Views/Windows/Stations/Fuzhou/TicketCheckScreenView.xaml.cs diff --git a/CRSim/App.xaml.cs b/CRSim/App.xaml.cs index 5e635c9..860e1ec 100644 --- a/CRSim/App.xaml.cs +++ b/CRSim/App.xaml.cs @@ -37,7 +37,7 @@ services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -61,6 +61,8 @@ services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); + services.AddTransient(); }).Build(); [STAThread] diff --git a/CRSim/Assets/StyleImages/Fuzhou/TicketCheckScreen.png b/CRSim/Assets/StyleImages/Fuzhou/TicketCheckScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..35a3994d0b925799f302425d64c27599e2bd116d GIT binary patch literal 18563 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 z%0A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 + @@ -37,6 +38,7 @@ + diff --git a/CRSim/Models/StylesInfoData.json b/CRSim/Models/StylesInfoData.json index 3a7f133..edaf1f0 100644 --- a/CRSim/Models/StylesInfoData.json +++ b/CRSim/Models/StylesInfoData.json @@ -22,6 +22,18 @@ "Text" ] }, + { + "UniqueId": "Fuzhou TicketCheckScreen", + "Title": "福州站检票口看板", + "Station": "Fuzhou", + "StyleName": "TicketCheckScreenView", + "ImagePath": "Assets/StyleImages/Fuzhou/TicketCheckScreen.png", + "Parameters": [ + "Station", + "TicketCheck", + "Text" + ] + }, { "UniqueId": "BeijingXi PrimaryScreen", "Title": "北京西站主要看板", diff --git a/CRSim/ViewModels/Windows/ScreenViewModel.cs b/CRSim/ViewModels/Windows/ScreenViewModel.cs index 26a1ae3..7896819 100644 --- a/CRSim/ViewModels/Windows/ScreenViewModel.cs +++ b/CRSim/ViewModels/Windows/ScreenViewModel.cs @@ -19,6 +19,8 @@ namespace CRSim.ViewModels private Station _thisStation; [ObservableProperty] private string _thisPlatform; + [ObservableProperty] + private string _thisTicketCheck; public event PropertyChangedEventHandler PropertyChanged; public List TrainInfo { get; set; } = []; @@ -60,6 +62,7 @@ namespace CRSim.ViewModels { ThisStation = station; ThisPlatform = platform; + ThisTicketCheck = ticketCheck; var trains = station.StationStops; foreach (var trainNumber in trains) { diff --git a/CRSim/ViewModels/Windows/Stations/ChengduDong/PrimaryTicketCheckScreenViewModel.cs b/CRSim/ViewModels/Windows/Stations/ChengduDong/PrimaryTicketCheckScreenViewModel.cs index bb01d71..6cd0182 100644 --- a/CRSim/ViewModels/Windows/Stations/ChengduDong/PrimaryTicketCheckScreenViewModel.cs +++ b/CRSim/ViewModels/Windows/Stations/ChengduDong/PrimaryTicketCheckScreenViewModel.cs @@ -1,9 +1,9 @@ namespace CRSim.ViewModels.ChengduDong { - public class PlatformScreenViewModel : ScreenViewModel + public class PrimaryTicketCheckScreenViewModel : ScreenViewModel { public ObservableCollection Screen { get; set; } = []; - public PlatformScreenViewModel(ITimeService timeService, ISettingsService settingsService) + public PrimaryTicketCheckScreenViewModel(ITimeService timeService, ISettingsService settingsService) : base(timeService, settingsService) { Text = "持户口簿、护照、临时身份证的旅客,请在非居民身份证通道排队。请主动礼让老、弱、病、残、孕的旅客。"; diff --git a/CRSim/ViewModels/Windows/Stations/Fuzhou/TicketCheckScreenViewModel.cs b/CRSim/ViewModels/Windows/Stations/Fuzhou/TicketCheckScreenViewModel.cs new file mode 100644 index 0000000..b3148e8 --- /dev/null +++ b/CRSim/ViewModels/Windows/Stations/Fuzhou/TicketCheckScreenViewModel.cs @@ -0,0 +1,31 @@ +namespace CRSim.ViewModels.Fuzhou +{ + public class TicketCheckScreenViewModel : ScreenViewModel + { + public ObservableCollection Screen { get; set; } = []; + public TicketCheckScreenViewModel(ITimeService timeService, ISettingsService settingsService) + : base(timeService, settingsService) + { + Text = $"开车前{settingsService.GetSettings().StopCheckInAdvanceDuration.TotalMinutes}分钟停止检票"; + timeService.RefreshSecondsElapsed += RefreshDisplay; + Initialize(); + } + private async void Initialize() + { + ItemsPerPage = 4; + await WaitForDataLoadAsync(); + RefreshDisplay(null,null); + } + private void RefreshDisplay(object? sender, EventArgs e) + { + Application.Current.Dispatcher.Invoke(() => + { + Screen.Clear(); + for (int i = 0; i < ItemsPerPage; i++) + { + Screen.Add(TrainInfo.Count > i ? TrainInfo[i] : new()); + } + }); + } + } +} diff --git a/CRSim/Views/Windows/Stations/BeijingXi/PrimaryScreenView.xaml.cs b/CRSim/Views/Windows/Stations/BeijingXi/PrimaryScreenView.xaml.cs index 7765b08..8ac26fc 100644 --- a/CRSim/Views/Windows/Stations/BeijingXi/PrimaryScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/BeijingXi/PrimaryScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.BeijingXi public PrimaryScreenView(PrimaryScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/ChengduDong/PrimaryTicketCheckScreenView.xaml.cs b/CRSim/Views/Windows/Stations/ChengduDong/PrimaryTicketCheckScreenView.xaml.cs index 3441c4f..7d43eea 100644 --- a/CRSim/Views/Windows/Stations/ChengduDong/PrimaryTicketCheckScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/ChengduDong/PrimaryTicketCheckScreenView.xaml.cs @@ -7,10 +7,11 @@ namespace CRSim.Views.ChengduDong /// public partial class PrimaryTicketCheckScreenView : Window { - public PlatformScreenViewModel ViewModel { get; } - public PrimaryTicketCheckScreenView(PlatformScreenViewModel viewModel) + public PrimaryTicketCheckScreenViewModel ViewModel { get; } + public PrimaryTicketCheckScreenView(PrimaryTicketCheckScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/ChengduDong/SecondaryScreenView.xaml.cs b/CRSim/Views/Windows/Stations/ChengduDong/SecondaryScreenView.xaml.cs index 57f9878..27df31f 100644 --- a/CRSim/Views/Windows/Stations/ChengduDong/SecondaryScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/ChengduDong/SecondaryScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.ChengduDong public SecondaryScreenView(SecondaryScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/ChengduMetro/PlatformScreenView.xaml.cs b/CRSim/Views/Windows/Stations/ChengduMetro/PlatformScreenView.xaml.cs index 6deeb45..ef86c25 100644 --- a/CRSim/Views/Windows/Stations/ChengduMetro/PlatformScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/ChengduMetro/PlatformScreenView.xaml.cs @@ -14,6 +14,7 @@ namespace CRSim.Views.ChengduMetro { InitializeComponent(); ViewModel = viewModel; + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); DataContext = this; player.Source = new Uri("Assets\\Advertisement.mp4", UriKind.Relative); player.Play(); diff --git a/CRSim/Views/Windows/Stations/Fuzhou/TicketCheckScreenView.xaml b/CRSim/Views/Windows/Stations/Fuzhou/TicketCheckScreenView.xaml new file mode 100644 index 0000000..06fef71 --- /dev/null +++ b/CRSim/Views/Windows/Stations/Fuzhou/TicketCheckScreenView.xaml @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CRSim/Views/Windows/Stations/Fuzhou/TicketCheckScreenView.xaml.cs b/CRSim/Views/Windows/Stations/Fuzhou/TicketCheckScreenView.xaml.cs new file mode 100644 index 0000000..4f1ad2c --- /dev/null +++ b/CRSim/Views/Windows/Stations/Fuzhou/TicketCheckScreenView.xaml.cs @@ -0,0 +1,34 @@ +using CRSim.ViewModels.Fuzhou; + +namespace CRSim.Views.Fuzhou +{ + /// + /// SecondaryScreen.xaml 的交互逻辑 + /// + public partial class TicketCheckScreenView : Window + { + public TicketCheckScreenViewModel ViewModel { get; } + public TicketCheckScreenView(TicketCheckScreenViewModel viewModel) + { + InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); + ViewModel = viewModel; + DataContext = viewModel; + } + private void Window_MouseDown(object sender, MouseButtonEventArgs e) + { + if (e.ChangedButton == MouseButton.Left) + { + DragMove(); + } + } + + private void Window_KeyDown(object sender, KeyEventArgs e) + { + if (e.Key == Key.Escape) + { + Close(); + } + } + } +} diff --git a/CRSim/Views/Windows/Stations/GuangdongIntercity/SecondaryScreenView.xaml.cs b/CRSim/Views/Windows/Stations/GuangdongIntercity/SecondaryScreenView.xaml.cs index c39b045..0a5df74 100644 --- a/CRSim/Views/Windows/Stations/GuangdongIntercity/SecondaryScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/GuangdongIntercity/SecondaryScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.GuangdongIntercity public SecondaryScreenView(SecondaryScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/Guangyuan/PrimaryScreenView.xaml.cs b/CRSim/Views/Windows/Stations/Guangyuan/PrimaryScreenView.xaml.cs index 8fe4333..ec166ec 100644 --- a/CRSim/Views/Windows/Stations/Guangyuan/PrimaryScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/Guangyuan/PrimaryScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.Guangyuan public PrimaryScreenView(OutsideScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/Hanzhong/PlatformScreenView.xaml.cs b/CRSim/Views/Windows/Stations/Hanzhong/PlatformScreenView.xaml.cs index 0e80d31..d559852 100644 --- a/CRSim/Views/Windows/Stations/Hanzhong/PlatformScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/Hanzhong/PlatformScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.Hanzhong public PlatformScreenView(PlatformScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/Harbin/PrimaryScreenView.xaml.cs b/CRSim/Views/Windows/Stations/Harbin/PrimaryScreenView.xaml.cs index bc69799..5436519 100644 --- a/CRSim/Views/Windows/Stations/Harbin/PrimaryScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/Harbin/PrimaryScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.Harbin public PrimaryScreenView(PrimaryScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/Jinanxi/SmallScreenView.xaml.cs b/CRSim/Views/Windows/Stations/Jinanxi/SmallScreenView.xaml.cs index f48da0d..001a4e5 100644 --- a/CRSim/Views/Windows/Stations/Jinanxi/SmallScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/Jinanxi/SmallScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.Jinanxi public SmallScreenView(SmallScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/Shanghai/OutsideScreenView.xaml.cs b/CRSim/Views/Windows/Stations/Shanghai/OutsideScreenView.xaml.cs index 889f22e..fc6b209 100644 --- a/CRSim/Views/Windows/Stations/Shanghai/OutsideScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/Shanghai/OutsideScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.Shanghai public OutsideScreenView(OutsideScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/Tianjin/PlatformScreenView.xaml b/CRSim/Views/Windows/Stations/Tianjin/PlatformScreenView.xaml index b49c1de..02da0dc 100644 --- a/CRSim/Views/Windows/Stations/Tianjin/PlatformScreenView.xaml +++ b/CRSim/Views/Windows/Stations/Tianjin/PlatformScreenView.xaml @@ -16,13 +16,13 @@ - + - + diff --git a/CRSim/Views/Windows/Stations/Tianjin/PlatformScreenView.xaml.cs b/CRSim/Views/Windows/Stations/Tianjin/PlatformScreenView.xaml.cs index 7c1c9ab..a015b0b 100644 --- a/CRSim/Views/Windows/Stations/Tianjin/PlatformScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/Tianjin/PlatformScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.Tianjin public PlatformScreenView(PlatformScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/Zibo/PrimaryScreenView.xaml.cs b/CRSim/Views/Windows/Stations/Zibo/PrimaryScreenView.xaml.cs index a276d94..a475193 100644 --- a/CRSim/Views/Windows/Stations/Zibo/PrimaryScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/Zibo/PrimaryScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.Zibo public PrimaryScreenView(PrimaryScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; } diff --git a/CRSim/Views/Windows/Stations/Zibo/SecondaryScreenView.xaml.cs b/CRSim/Views/Windows/Stations/Zibo/SecondaryScreenView.xaml.cs index 52f9686..3aa7eda 100644 --- a/CRSim/Views/Windows/Stations/Zibo/SecondaryScreenView.xaml.cs +++ b/CRSim/Views/Windows/Stations/Zibo/SecondaryScreenView.xaml.cs @@ -11,6 +11,7 @@ namespace CRSim.Views.Zibo public SecondaryScreenView(SecondaryScreenViewModel viewModel) { InitializeComponent(); + RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); ViewModel = viewModel; DataContext = viewModel; }