feat: 初始功能

This commit is contained in:
Shiqvlizi Name
2026-05-23 18:16:50 +08:00
parent a5bfd8792e
commit 9a51259e9e
63 changed files with 5377 additions and 1 deletions

89
Views/PrintQueueView.xaml Normal file
View File

@@ -0,0 +1,89 @@
<UserControl x:Class="CloudPrint.Client.Views.PrintQueueView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="White" CornerRadius="14" Padding="18" Margin="0,0,16,0">
<DockPanel>
<Grid DockPanel.Dock="Top" Margin="0,0,0,12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel>
<TextBlock Text="打印任务队列" FontSize="18" FontWeight="Bold" />
<TextBlock Text="后端 SubscribeJobs 流进入队列,客户端预处理后提交打印并上报 ReportJobStatus。"
Foreground="#64748B" Margin="0,4,0,0" />
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center">
<CheckBox Content="自动处理" IsChecked="{Binding AutoProcessQueue}" VerticalAlignment="Center" Margin="0,0,8,0" />
<Button Content="暂停队列" Command="{Binding PauseQueueCommand}" Style="{StaticResource SecondaryButtonStyle}" />
<Button Content="恢复队列" Command="{Binding ResumeQueueCommand}" Style="{StaticResource SecondaryButtonStyle}" />
<Button Content="处理下一任务" Command="{Binding ProcessSelectedJobCommand}" />
<Button Content="取消选中" Command="{Binding CancelSelectedJobCommand}" Style="{StaticResource SecondaryButtonStyle}" />
</StackPanel>
</Grid>
<TextBlock DockPanel.Dock="Top"
Text="{Binding QueueStatusText}"
Foreground="#2563EB"
Margin="0,0,0,10" />
<DataGrid ItemsSource="{Binding Jobs}" SelectedItem="{Binding SelectedJob}">
<DataGrid.Columns>
<DataGridTextColumn Header="任务号" Binding="{Binding JobNo}" Width="155" />
<DataGridTextColumn Header="文件" Binding="{Binding FileName}" Width="*" />
<DataGridTextColumn Header="打印机" Binding="{Binding PrinterName}" Width="160" />
<DataGridTextColumn Header="份数" Binding="{Binding Copies}" Width="65" />
<DataGridCheckBoxColumn Header="彩色" Binding="{Binding Color}" Width="65" />
<DataGridCheckBoxColumn Header="双面" Binding="{Binding Duplex}" Width="65" />
<DataGridTextColumn Header="页码" Binding="{Binding PageRange}" Width="70" />
<DataGridTextColumn Header="系统Job" Binding="{Binding WindowsJobId}" Width="80" />
<DataGridTextColumn Header="系统状态" Binding="{Binding WindowsJobStatus}" Width="110" />
<DataGridTextColumn Header="状态" Binding="{Binding StatusText}" Width="90" />
<DataGridTextColumn Header="进度" Binding="{Binding Progress, StringFormat={}{0}%}" Width="75" />
<DataGridTextColumn Header="错误" Binding="{Binding ErrorMessage}" Width="160" />
</DataGrid.Columns>
</DataGrid>
</DockPanel>
</Border>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="White" CornerRadius="14" Padding="18" Margin="0,0,0,16">
<StackPanel>
<TextBlock Text="运行设置" FontSize="18" FontWeight="Bold" />
<TextBlock Text="真实打印链路:注册打印机 → 订阅任务 → 下载/处理文件 → 调用 Windows 打印服务 → 上报状态。"
TextWrapping="Wrap" Foreground="#64748B" Margin="0,12,0,0" />
</StackPanel>
</Border>
<Border Grid.Row="1" Background="White" CornerRadius="14" Padding="18">
<DockPanel>
<StackPanel DockPanel.Dock="Top" Margin="0,0,0,12">
<DockPanel>
<TextBlock Text="运行日志" FontSize="18" FontWeight="Bold" DockPanel.Dock="Left" />
<Button Content="清空" Command="{Binding ClearLogsCommand}" Style="{StaticResource SecondaryButtonStyle}" DockPanel.Dock="Right" />
</DockPanel>
<TextBlock Text="{Binding LastMessage}" Foreground="#64748B" TextWrapping="Wrap" Margin="0,4,0,0" />
</StackPanel>
<ListBox ItemsSource="{Binding Logs}" BorderThickness="0" FontFamily="Consolas" FontSize="12">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayText}" TextWrapping="Wrap" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DockPanel>
</Border>
</Grid>
</Grid>
</UserControl>