版本260406
This commit is contained in:
174
OrpaonVision.ConfigApp/Views/TrainingTaskManagementWindow.xaml
Normal file
174
OrpaonVision.ConfigApp/Views/TrainingTaskManagementWindow.xaml
Normal file
@@ -0,0 +1,174 @@
|
||||
<Window x:Class="OrpaonVision.ConfigApp.Views.TrainingTaskManagementWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
Title="训练任务管理" Height="720" Width="1200" MinWidth="1000" MinHeight="600">
|
||||
<Grid Margin="16">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 标题 -->
|
||||
<TextBlock Grid.Row="0" Margin="0,0,0,16" FontSize="24" FontWeight="SemiBold" Text="训练任务管理" />
|
||||
|
||||
<!-- 统计信息和搜索栏 -->
|
||||
<Grid Grid.Row="1" Margin="0,0,0,16">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- 统计信息 -->
|
||||
<Border Grid.Column="0" Padding="16" Background="#F8F9FA" CornerRadius="6">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<StackPanel Grid.Column="0" Margin="0,0,16,0">
|
||||
<TextBlock Text="总任务" FontSize="12" Foreground="#666666" />
|
||||
<TextBlock Text="{Binding Statistics.TotalTasks}" FontSize="20" FontWeight="Bold" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="1" Margin="0,0,16,0">
|
||||
<TextBlock Text="运行中" FontSize="12" Foreground="#666666" />
|
||||
<TextBlock Text="{Binding Statistics.RunningTasks}" FontSize="20" FontWeight="Bold" Foreground="#007ACC" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="2" Margin="0,0,16,0">
|
||||
<TextBlock Text="已完成" FontSize="12" Foreground="#666666" />
|
||||
<TextBlock Text="{Binding Statistics.CompletedTasks}" FontSize="20" FontWeight="Bold" Foreground="#28A745" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="3" Margin="0,0,16,0">
|
||||
<TextBlock Text="失败" FontSize="12" Foreground="#666666" />
|
||||
<TextBlock Text="{Binding Statistics.FailedTasks}" FontSize="20" FontWeight="Bold" Foreground="#DC3545" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="4">
|
||||
<TextBlock Text="成功率" FontSize="12" Foreground="#666666" />
|
||||
<TextBlock Text="{Binding Statistics.SuccessRate, StringFormat={}{0:F1}%}" FontSize="20" FontWeight="Bold" Foreground="#28A745" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- 搜索和筛选 -->
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal">
|
||||
<TextBox x:Name="SearchTextBox" Width="200" Margin="0,0,8,0" VerticalContentAlignment="Center"
|
||||
Text="{Binding SearchKeyword, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<ComboBox x:Name="StatusComboBox" Width="120" Margin="0,0,8,0" VerticalContentAlignment="Center"
|
||||
ItemsSource="{Binding StatusOptions}" SelectedItem="{Binding SelectedStatus}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
<Button Content="搜索" Command="{Binding SearchCommand}" Padding="12,6" />
|
||||
<Button Content="刷新" Command="{Binding RefreshDataCommand}" Padding="12,6" Margin="8,0,0,0" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- 任务列表 -->
|
||||
<Border Grid.Row="2" BorderBrush="#DDDDDD" BorderThickness="1" CornerRadius="6">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<DataGrid Grid.Row="0"
|
||||
ItemsSource="{Binding Tasks}"
|
||||
SelectedItem="{Binding SelectedTask}"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserAddRows="False"
|
||||
CanUserDeleteRows="False"
|
||||
IsReadOnly="True"
|
||||
HeadersVisibility="Column"
|
||||
GridLinesVisibility="Horizontal"
|
||||
HorizontalGridLinesBrush="#EEEEEE"
|
||||
SelectionMode="Single">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="任务名称" Binding="{Binding Name}" Width="200" />
|
||||
<DataGridTextColumn Header="类型" Binding="{Binding TaskType, Converter={StaticResource EnumToDescriptionConverter}}" Width="100" />
|
||||
<DataGridTextColumn Header="状态" Binding="{Binding Status, Converter={StaticResource EnumToDescriptionConverter}}" Width="100">
|
||||
<DataGridTextColumn.ElementStyle>
|
||||
<Style TargetType="TextBlock">
|
||||
<Setter Property="Foreground" Value="{Binding Status, Converter={StaticResource StatusToColorConverter}}" />
|
||||
</Style>
|
||||
</DataGridTextColumn.ElementStyle>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="优先级" Binding="{Binding Priority, Converter={StaticResource EnumToDescriptionConverter}}" Width="80" />
|
||||
<DataGridTextColumn Header="进度" Binding="{Binding Progress, StringFormat={}{0:F1}%}" Width="80" />
|
||||
<DataGridTextColumn Header="当前轮次" Binding="{Binding CurrentEpoch}" Width="80" />
|
||||
<DataGridTextColumn Header="总轮次" Binding="{Binding TotalEpochs}" Width="80" />
|
||||
<DataGridTextColumn Header="当前损失" Binding="{Binding CurrentLoss, StringFormat=F4}" Width="100" />
|
||||
<DataGridTextColumn Header="最佳mAP" Binding="{Binding BestMap, StringFormat=F4}" Width="100" />
|
||||
<DataGridTextColumn Header="创建人" Binding="{Binding CreatedByName}" Width="100" />
|
||||
<DataGridTextColumn Header="创建时间" Binding="{Binding CreatedAtUtc, Converter={StaticResource DateTimeToLocalConverter}}" Width="140" />
|
||||
<DataGridTextColumn Header="分配给" Binding="{Binding AssignedToName}" Width="100" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<!-- 分页控件 -->
|
||||
<Border Grid.Row="1" Padding="12" Background="#F8F9FA" BorderThickness="0,1,0,0" BorderBrush="#DDDDDD">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="共 " />
|
||||
<TextBlock Text="{Binding TotalCount}" FontWeight="Bold" />
|
||||
<TextBlock Text=" 条记录,第 " />
|
||||
<TextBlock Text="{Binding CurrentPageIndex}" FontWeight="Bold" />
|
||||
<TextBlock Text=" / " />
|
||||
<TextBlock Text="{Binding TotalPages}" FontWeight="Bold" />
|
||||
<TextBlock Text=" 页" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal">
|
||||
<Button Content="上一页" Command="{Binding PageChangedCommand}" CommandParameter="{Binding CurrentPageIndex, Converter={StaticResource PageIndexConverter}, ConverterParameter=prev}"
|
||||
Padding="8,4" Margin="0,0,8,0" />
|
||||
<Button Content="下一页" Command="{Binding PageChangedCommand}" CommandParameter="{Binding CurrentPageIndex, Converter={StaticResource PageIndexConverter}, ConverterParameter=next}"
|
||||
Padding="8,4" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- 操作按钮栏 -->
|
||||
<StackPanel Grid.Row="3" Orientation="Horizontal" Margin="0,16,0,0" HorizontalAlignment="Right">
|
||||
<Button Content="启动" Command="{Binding StartTaskCommand}" IsEnabled="{Binding CanStartTask}" Padding="16,8" Margin="0,0,8,0" />
|
||||
<Button Content="暂停" Command="{Binding PauseTaskCommand}" IsEnabled="{Binding CanPauseTask}" Padding="16,8" Margin="0,0,8,0" />
|
||||
<Button Content="停止" Command="{Binding StopTaskCommand}" IsEnabled="{Binding CanStopTask}" Padding="16,8" Margin="0,0,8,0" />
|
||||
<Button Content="取消" Command="{Binding CancelTaskCommand}" IsEnabled="{Binding CanCancelTask}" Padding="16,8" Margin="0,0,8,0" />
|
||||
<Button Content="重启" Command="{Binding RestartTaskCommand}" IsEnabled="{Binding CanRestartTask}" Padding="16,8" Margin="0,0,8,0" />
|
||||
<Button Content="删除" Command="{Binding DeleteTaskCommand}" IsEnabled="{Binding CanDeleteTask}" Padding="16,8" Margin="0,0,8,0" Background="#DC3545" Foreground="White" />
|
||||
<Button Content="详情" Command="{Binding ViewTaskDetailsCommand}" IsEnabled="{Binding HasSelectedTask}" Padding="16,8" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- 状态栏 -->
|
||||
<StatusBar Grid.Row="3" VerticalAlignment="Bottom" Background="#F8F9FA">
|
||||
<StatusBarItem>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<ProgressBar IsIndeterminate="{Binding IsLoading}" Width="16" Height="16" Margin="0,0,8,0" Visibility="{Binding IsLoading, Converter={StaticResource BoolToVisibilityConverter}}" />
|
||||
<TextBlock Text="{Binding StatusMessage}" />
|
||||
</StackPanel>
|
||||
</StatusBarItem>
|
||||
</StatusBar>
|
||||
</Grid>
|
||||
</Window>
|
||||
Reference in New Issue
Block a user