You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

277 lines
19 KiB
Plaintext

4 days ago
<UserControl x:Class="Sln_Wpf.Page.TaskInfo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="1100"
Background="#F5F7FA">
<UserControl.Resources>
<!-- 卡片样式 -->
<Style x:Key="CardStyle" TargetType="Border">
<Setter Property="Background" Value="White"/>
<Setter Property="CornerRadius" Value="12"/>
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect Color="LightGray" BlurRadius="15" ShadowDepth="2" Opacity="0.3"/>
</Setter.Value>
</Setter>
</Style>
<!-- 数据表格样式 -->
<Style x:Key="DataGridStyle" TargetType="DataGrid">
<Setter Property="FontSize" Value="12"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="RowHeight" Value="40"/>
<Setter Property="HeadersVisibility" Value="Column"/>
<Setter Property="GridLinesVisibility" Value="Horizontal"/>
<Setter Property="HorizontalGridLinesBrush" Value="#E9ECF1"/>
<Setter Property="VerticalGridLinesBrush" Value="Transparent"/>
<Setter Property="Background" Value="White"/>
<Setter Property="RowBackground" Value="White"/>
<Setter Property="AlternatingRowBackground" Value="#F9FAFC"/>
<Setter Property="SelectionMode" Value="Single"/>
<Setter Property="SelectionUnit" Value="FullRow"/>
</Style>
<!-- 按钮样式 -->
<Style x:Key="ActionButtonStyle" TargetType="Button">
<Setter Property="Height" Value="32"/>
<Setter Property="Width" Value="70"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="FontWeight" Value="Medium"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}"
CornerRadius="6"
Padding="8,5">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="0.85"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- TabControl样式 -->
<Style TargetType="TabControl">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<Style TargetType="TabItem">
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Padding" Value="30,12"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Background="{TemplateBinding Background}"
BorderThickness="0,0,0,3"
BorderBrush="Transparent"
CornerRadius="8,8,0,0">
<ContentPresenter x:Name="ContentSite"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ContentSource="Header"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="White"/>
<Setter TargetName="ContentSite" Property="TextBlock.Foreground" Value="#3A7CA5"/>
<Setter Property="BorderBrush" Value="#3A7CA5"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#F0F2F5"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid Margin="30,20,30,20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 主要内容区TabControl 包含任务类型和路径信息 -->
<TabControl Grid.Row="1" Background="Transparent" SelectionChanged="TabControl_SelectionChanged">
<!-- Tab 1: 任务列表 -->
<TabItem Header="🏷️ 任务列表" Height="23" VerticalAlignment="Bottom">
<Grid Margin="0,20,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 操作栏:增删改查按钮 -->
<Border Grid.Row="0" Style="{StaticResource CardStyle}" Padding="15,12" Margin="0,0,0,20">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<Button x:Name="BtnTaskAdd" Style="{StaticResource ActionButtonStyle}" Background="#27AE60" Content=" 新增" Click="BtnTaskAdd_Click" Margin="0,0,10,0"/>
<Button x:Name="BtnTaskDelete" Style="{StaticResource ActionButtonStyle}" Background="#E74C3C" Content="🗑️ 删除" Click="BtnTaskDelete_Click" Margin="0,0,10,0"/>
<Button x:Name="ExceptionTaskEdit" Style="{StaticResource ActionButtonStyle}" Background="#F39C12" Content="✏️ 异常任务重置" Click="ExceptionTaskEdit_Click" Width="120" Margin="0,0,10,0"/>
<Border Width="1" Background="#E9ECF1" Margin="15,0,15,0"/>
</StackPanel>
</Border>
<!-- 任务列表表格 -->
<Border Grid.Row="2" Style="{StaticResource CardStyle}" Padding="0">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<DataGrid x:Name="TaskDataGrid" Style="{StaticResource DataGridStyle}"
AutoGenerateColumns="False" CanUserAddRows="False"
SelectionChanged="TaskDataGrid_SelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="任务编码" Width="140" Binding="{Binding TaskCode}" FontWeight="SemiBold"/>
<DataGridTextColumn Header="任务名称" Width="120" Binding="{Binding TaskName}"/>
<DataGridTextColumn Header="任务类型" Width="120" Binding="{Binding TaskTypeName}"/>
<DataGridTextColumn Header="任务状态" Width="100" Binding="{Binding Status}"/>
<DataGridTextColumn Header="优先级" Width="80" Binding="{Binding PriorityText}"/>
<DataGridTextColumn Header="源位置" Width="130" Binding="{Binding SourceLocation}"/>
<DataGridTextColumn Header="目标位置" Width="130" Binding="{Binding TargetLocation}"/>
<DataGridTextColumn Header="物料编码" Width="120" Binding="{Binding MaterialCode}"/>
<DataGridTextColumn Header="物料名称" Width="120" Binding="{Binding MaterialName}"/>
<DataGridTextColumn Header="子任务进度" Width="100" Binding="{Binding SubtaskProgress}"/>
<DataGridTextColumn Header="当前子任务" Width="130" Binding="{Binding CurrentSubtaskCode}"/>
<DataGridTextColumn Header="结果代码" Width="100" Binding="{Binding ResultCode}"/>
<DataGridTextColumn Header="错误信息" Width="150" Binding="{Binding ErrorMessage}"/>
<DataGridTextColumn Header="创建时间" Width="150" Binding="{Binding CreateTime}"/>
<DataGridTextColumn Header="更新时间" Width="150" Binding="{Binding UpdateTime}"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</Border>
</Grid>
</TabItem>
<!-- Tab 2: 任务类型 -->
<TabItem Header="🏷️ 任务类型">
<Grid Margin="0,20,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 操作栏:增删改查按钮 -->
<Border Grid.Row="0" Style="{StaticResource CardStyle}" Padding="15,12" Margin="0,0,0,20">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<Button x:Name="BtnTaskTypeAdd" Style="{StaticResource ActionButtonStyle}" Background="#27AE60" Content=" 新增" Click="BtnTaskTypeAdd_Click" Margin="0,0,10,0"/>
<Button x:Name="BtnTaskTypeEdit" Style="{StaticResource ActionButtonStyle}" Background="#F39C12" Content="✏️ 编辑" Click="BtnTaskTypeEdit_Click" Margin="0,0,10,0"/>
<Button x:Name="BtnTaskTypeDelete" Style="{StaticResource ActionButtonStyle}" Background="#E74C3C" Content="🗑️ 删除" Click="BtnTaskTypeDelete_Click" Margin="0,0,10,0"/>
<Button x:Name="BtnTaskTypeQuery" Style="{StaticResource ActionButtonStyle}" Background="#3498DB" Content="🔍 查询" Click="BtnTaskTypeQuery_Click" Margin="0,0,10,0"/>
<Border Width="1" Background="#E9ECF1" Margin="15,0,15,0"/>
<TextBlock Text="快速筛选:" FontSize="13" Foreground="#5A6E7A" VerticalAlignment="Center" Margin="0,0,10,0"/>
<ComboBox x:Name="FilterUseFlag" Width="100" Height="32" VerticalAlignment="Center" Margin="0,0,10,0" SelectedIndex="0">
<ComboBoxItem Content="全部状态"/>
<ComboBoxItem Content="启用"/>
<ComboBoxItem Content="禁用"/>
</ComboBox>
<TextBox x:Name="SearchTaskTypeKeyword" Width="180" Height="32" VerticalAlignment="Center" Padding="8,5"
Background="#F8F9FA" BorderBrush="#E0E4E8"
Text="请输入任务名称/编号" Foreground="#95A5A6"/>
</StackPanel>
</Border>
<!-- 任务类型表格 -->
<Border Grid.Row="2" Style="{StaticResource CardStyle}" Padding="0">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<DataGrid x:Name="TaskTypeDataGrid" Style="{StaticResource DataGridStyle}"
AutoGenerateColumns="False" CanUserAddRows="False"
SelectionChanged="TaskTypeDataGrid_SelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="任务名称" Width="120" Binding="{Binding TaskTypeName}" FontWeight="SemiBold"/>
<DataGridTextColumn Header="任务编号" Width="120" Binding="{Binding TaskTypeKey}"/>
<DataGridTextColumn Header="任务模板" Width="200" Binding="{Binding TaskTypeValue}"/>
<DataGridTextColumn Header="启用标志" Width="80" Binding="{Binding UseFlag}"/>
<DataGridTextColumn Header="AGV小车类型" Width="120" Binding="{Binding AgvType}"/>
<DataGridTextColumn Header="AGV任务类型" Width="130" Binding="{Binding AgvTaskType}"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</Border>
</Grid>
</TabItem>
<!-- Tab 3: 路径信息(子任务) -->
<TabItem Header="🛤️ 路径信息" Height="23" VerticalAlignment="Bottom">
<Grid Margin="0,20,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 操作栏:增删改查按钮 -->
<Border Grid.Row="0" Style="{StaticResource CardStyle}" Padding="15,12" Margin="0,0,0,20">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<Button x:Name="BtnSubtaskAdd" Style="{StaticResource ActionButtonStyle}" Background="#27AE60" Content=" 新增" Click="BtnSubtaskAdd_Click" Margin="0,0,10,0"/>
<Button x:Name="BtnSubtaskEdit" Style="{StaticResource ActionButtonStyle}" Background="#F39C12" Content="✏️ 编辑" Click="BtnSubtaskEdit_Click" Margin="0,0,10,0"/>
<Button x:Name="BtnSubtaskDelete" Style="{StaticResource ActionButtonStyle}" Background="#E74C3C" Content="🗑️ 删除" Click="BtnSubtaskDelete_Click" Margin="0,0,10,0"/>
<Button x:Name="BtnSubtaskQuery" Style="{StaticResource ActionButtonStyle}" Background="#3498DB" Content="🔍 查询" Click="BtnSubtaskQuery_Click" Margin="0,0,10,0"/>
<Border Width="1" Background="#E9ECF1" Margin="15,0,15,0"/>
<TextBlock Text="快速筛选:" FontSize="13" Foreground="#5A6E7A" VerticalAlignment="Center" Margin="0,0,10,0"/>
<ComboBox x:Name="FilterParentTaskType" Width="150" Height="32" VerticalAlignment="Center" Margin="0,0,10,0" SelectedIndex="0">
<ComboBoxItem Content="全部任务类型"/>
</ComboBox>
<ComboBox x:Name="FilterSubtaskStatus" Width="100" Height="32" VerticalAlignment="Center" Margin="0,0,10,0" SelectedIndex="0">
<ComboBoxItem Content="全部状态"/>
<ComboBoxItem Content="启用"/>
<ComboBoxItem Content="禁用"/>
</ComboBox>
<TextBox x:Name="SearchSubtaskKeyword" Width="180" Height="32" VerticalAlignment="Center" Padding="8,5"
Background="#F8F9FA" BorderBrush="#E0E4E8"
Text="请输入子任务编码/名称" Foreground="#95A5A6"/>
</StackPanel>
</Border>
<!-- 子任务表格 -->
<Border Grid.Row="2" Style="{StaticResource CardStyle}" Padding="0">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<DataGrid x:Name="SubtaskDataGrid" Style="{StaticResource DataGridStyle}"
AutoGenerateColumns="False" CanUserAddRows="False"
SelectionChanged="SubtaskDataGrid_SelectionChanged"
MaxHeight="500">
<DataGrid.Columns>
<DataGridTextColumn Header="子任务编码" Width="120" Binding="{Binding SubtaskCode}" FontWeight="SemiBold"/>
<DataGridTextColumn Header="子任务名称" Width="120" Binding="{Binding SubtaskName}"/>
<DataGridTextColumn Header="子任务类型" Width="100" Binding="{Binding SubtaskType}"/>
<DataGridTextColumn Header="执行设备类型" Width="110" Binding="{Binding DeviceType}"/>
<DataGridTextColumn Header="设备动作" Width="100" Binding="{Binding DeviceAction}"/>
<DataGridTextColumn Header="源位置类型" Width="100" Binding="{Binding SourceLocationType}"/>
<DataGridTextColumn Header="源位置编码" Width="130" Binding="{Binding SourceLocationCode}"/>
<DataGridTextColumn Header="目标位置类型" Width="100" Binding="{Binding TargetLocationType}"/>
<DataGridTextColumn Header="目标位置编码" Width="130" Binding="{Binding TargetLocationCode}"/>
<DataGridTextColumn Header="物料操作" Width="100" Binding="{Binding MaterialAction}"/>
<DataGridTextColumn Header="容器类型" Width="100" Binding="{Binding ContainerType}"/>
<DataGridTextColumn Header="携带物料" Width="80" Binding="{Binding IsCarryMaterialText}"/>
<DataGridTextColumn Header="状态" Width="60" Binding="{Binding StatusText}"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</Border>
</Grid>
</TabItem>
</TabControl>
</Grid>
</UserControl>