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
XML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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>