mirror of
https://github.com/denglihong2007/CRSim
synced 2026-08-08 02:25:35 +08:00
feat: 移植12306模拟
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System.Diagnostics;
|
||||
using CRSim.WebsiteSimulator;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace CRSim
|
||||
{
|
||||
@@ -45,6 +46,8 @@ namespace CRSim
|
||||
services.AddTransient<DashboardPageViewModel>();
|
||||
services.AddTransient<StationManagementPageViewModel>();
|
||||
services.AddTransient<TrainNumberManagementPageViewModel>();
|
||||
services.AddTransient<WebsiteSimulatorPageViewModel>();
|
||||
services.AddTransient<Simulator>();
|
||||
services.AddTransient<ScreenSimulatorPageViewModel>();
|
||||
services.AddTransient<SettingsPageViewModel>();
|
||||
services.AddTransient<PluginManagementPageViewModel>();
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
<PackageReference Include="CommunityToolkit.WinUI.Controls.Primitives" Version="8.2.250402" />
|
||||
<PackageReference Include="CommunityToolkit.WinUI.Controls.SettingsControls" Version="8.2.250402" />
|
||||
<PackageReference Include="CommunityToolkit.WinUI.Converters" Version="8.2.250402" />
|
||||
<PackageReference Include="CRSim.WebsiteSimulator" Version="2.3.109" />
|
||||
<PackageReference Include="EPPlus" Version="8.0.8" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.8" />
|
||||
@@ -80,6 +81,9 @@
|
||||
<Page Update="Views\DialogContents\PlatformDialog.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="Views\WebsiteSimulatorPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="Views\ScreenSimulatorPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
|
||||
@@ -48,7 +48,12 @@
|
||||
<NavigationViewItem.Icon>
|
||||
<FontIcon Glyph="" />
|
||||
</NavigationViewItem.Icon>
|
||||
</NavigationViewItem>
|
||||
</NavigationViewItem>
|
||||
<NavigationViewItem Content="12306" Tag="WebsiteSimulatorPage">
|
||||
<NavigationViewItem.Icon>
|
||||
<FontIcon Glyph="" />
|
||||
</NavigationViewItem.Icon>
|
||||
</NavigationViewItem>
|
||||
</NavigationView.MenuItems>
|
||||
<Frame x:Name="contentFrame"/>
|
||||
</NavigationView>
|
||||
|
||||
27
CRSim/ViewModels/WebsiteSimulatorPageViewModel.cs
Normal file
27
CRSim/ViewModels/WebsiteSimulatorPageViewModel.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using CRSim.WebsiteSimulator;
|
||||
|
||||
namespace CRSim.ViewModels;
|
||||
|
||||
public partial class WebsiteSimulatorPageViewModel(IDialogService _dialogService, Simulator _simulator) : ObservableObject
|
||||
{
|
||||
public string PageTitle = "12306模拟";
|
||||
|
||||
[RelayCommand]
|
||||
public async Task StartSimulation()
|
||||
{
|
||||
try
|
||||
{
|
||||
await _simulator.Start();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
await _dialogService.ShowMessageAsync("认证失败", e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
public void StopSimulation()
|
||||
{
|
||||
_simulator.Stop();
|
||||
}
|
||||
}
|
||||
40
CRSim/Views/WebsiteSimulatorPage.xaml
Normal file
40
CRSim/Views/WebsiteSimulatorPage.xaml
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Page
|
||||
x:Class="CRSim.Views.WebsiteSimulatorPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:CRSim.Views"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:viewmodels="using:CRSim.ViewModels"
|
||||
xmlns:winui="using:CommunityToolkit.WinUI"
|
||||
xmlns:controls="using:CommunityToolkit.WinUI.Controls"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance Type=viewmodels:WebsiteSimulatorPageViewModel}">
|
||||
<Grid x:Name="ContentPagePane" Margin="36,40,0,36">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="{x:Bind ViewModel.PageTitle}" Margin="0,0,0,36"
|
||||
Style="{StaticResource TitleTextBlockStyle}"/>
|
||||
<ScrollViewer Grid.Row="1" Padding="0,0,36,0">
|
||||
<StackPanel>
|
||||
<InfoBar Severity="Warning" IsOpen="True" Title="使用须知" Message="本系统仅用于个人学习及交流铁路网络售票业务使用,不作它用。严禁将本系统用于非法用途,由于不当使用本系统而产生法律责任的,开发组不承担任何民事、刑事责任,并将配合行政、司法机关的调查取证工作。如果您通过反编译客户端,劫持网络通讯、利用系统缺陷等技术手段不当使用本系统,所造成的一切后果将由您自己承担。"/>
|
||||
<InfoBar Severity="Warning" IsOpen="True" Title="声明" Message="该模拟页面内涉及的任何数据(包括但不限于列车时刻、票额票价、旅客列车开行方案等)均为用户自行设置,与任何一家铁路运输企业的真实生产数据都没有相关性。本软件中“中国铁道科学研究院集团有限公司”、“铁旅科技有限公司”等字样皆为虚构,与现实并无关联。如果该系统侵犯到您的权益,请立即联系电子邮件 support@mstscn.com 告知作者,作者将会在第一时间删除相关内容。" Margin="0,4"/>
|
||||
<InfoBar Severity="Informational" IsOpen="True" Title="注意" Message="本功能需要设置用户密钥后才可使用。" Margin="0,0,0,12">
|
||||
<InfoBar.ActionButton>
|
||||
<HyperlinkButton Content="了解更多" NavigateUri="https://docs.crsim.tech/app/key" />
|
||||
</InfoBar.ActionButton>
|
||||
</InfoBar>
|
||||
<TextBlock Text="操作" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}" Margin="0,0,0,12"/>
|
||||
<controls:SettingsCard Header="开始模拟" Description="启动一个新的模拟窗口" HeaderIcon="{winui:FontIcon Glyph=}">
|
||||
<Button Content="开始模拟" Command="{x:Bind ViewModel.StartSimulationCommand}" Style="{StaticResource AccentButtonStyle}"/>
|
||||
</controls:SettingsCard>
|
||||
<controls:SettingsCard Margin="0,4,0,0" Header="停止模拟" Description="停止模拟并关闭窗口" HeaderIcon="{winui:FontIcon Glyph=}">
|
||||
<Button Content="停止模拟" Command="{x:Bind ViewModel.StopSimulationCommand}" Style="{StaticResource AccentButtonStyle}"/>
|
||||
</controls:SettingsCard>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
</Page>
|
||||
12
CRSim/Views/WebsiteSimulatorPage.xaml.cs
Normal file
12
CRSim/Views/WebsiteSimulatorPage.xaml.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace CRSim.Views;
|
||||
|
||||
public sealed partial class WebsiteSimulatorPage : Page
|
||||
{
|
||||
public WebsiteSimulatorPageViewModel ViewModel { get; } = App.AppHost.Services.GetService<WebsiteSimulatorPageViewModel>();
|
||||
|
||||
public WebsiteSimulatorPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
DataContext = ViewModel;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user