Files
qhmes/yy-admin-master/YY.Admin/Views/RawMaterialEntry/RawMaterialEntryOperationView.xaml

739 lines
52 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<UserControl x:Class="YY.Admin.Views.RawMaterialEntry.RawMaterialEntryOperationView"
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"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:ctrls="clr-namespace:YY.Admin.Controls"
xmlns:core="clr-namespace:YY.Admin.Core.Entity;assembly=YY.Admin.Core"
xmlns:prism="http://prismlibrary.com/"
prism:ViewModelLocator.AutoWireViewModel="True"
mc:Ignorable="d">
<UserControl.Resources>
<!-- 右侧今日列表:单选行选中态浅蓝背景 -->
<Style x:Key="TodayEntryListBoxItemStyle" TargetType="ListBoxItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Bd" Background="{TemplateBinding Background}" Padding="6,4">
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Bd" Property="Background" Value="#FFF5F5F5"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Bd" Property="Background" Value="#E3F2FD"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid Style="{StaticResource BaseViewStyle}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="24,16,24,12">
<TextBlock FontSize="18"
Foreground="{DynamicResource PrimaryTextBrush}"
Text="{Binding DialogTitle}"
HorizontalAlignment="Left"
VerticalAlignment="Center"/>
<!-- 收起/展开与右侧列表分离:置于页头右上,与标题同行 -->
<!-- 显式绑定 UserControl.DataContext避免页眉 DataContext 非本页 ViewModel 时 Toggle 无效 -->
<Button HorizontalAlignment="Right"
VerticalAlignment="Center"
Command="{Binding DataContext.ToggleRightPanelCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
Click="ToggleTodayPanelButton_OnClick"
Padding="12,6"
FontSize="12"
MinHeight="32">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource ButtonDefault}">
<Setter Property="Content" Value="收起"/>
<Setter Property="ToolTip" Value="收起右侧「今日入场」列表"/>
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.IsRightPanelExpanded, RelativeSource={RelativeSource AncestorType=UserControl}}" Value="False">
<Setter Property="Content" Value="展开"/>
<Setter Property="ToolTip" Value="展开右侧「今日入场」列表"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</Grid>
<Grid Grid.Row="1" x:Name="MainSplitRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="320"/>
<ColumnDefinition x:Name="SplitterCol" Width="4"/>
<ColumnDefinition x:Name="RightPaneCol" Width="280" MinWidth="0"/>
</Grid.ColumnDefinitions>
<hc:ScrollViewer Grid.Column="0" IsInertiaEnabled="True" HorizontalScrollBarVisibility="Disabled">
<StackPanel x:Name="RootPanel" Margin="24,8,24,8">
<TextBlock Text="基础资料"
FontSize="13"
FontWeight="SemiBold"
Foreground="{DynamicResource PrimaryTextBrush}"
Margin="0,0,0,6"/>
<!-- 带横竖线的表格式表单 -->
<Border BorderThickness="1" BorderBrush="{DynamicResource BorderBrush}" Margin="0,0,0,8">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="36"/> <!-- 密炼物料 -->
<RowDefinition Height="38"/> <!-- 批次号 / 入场时间 -->
<RowDefinition Height="36"/> <!-- 榜单号 -->
<RowDefinition Height="36"/> <!-- 供料客户 / 供应商名称 -->
<RowDefinition Height="36"/> <!-- 厂家物料名称 / 保质期 -->
<RowDefinition Height="36"/> <!-- 总重 / 总份数 -->
<RowDefinition Height="36"/> <!-- 每份总重 / 每份包数 -->
<RowDefinition Height="36"/> <!-- 库位 / 卸货人 -->
<RowDefinition Height="60"/> <!-- 备注 -->
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="90"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="90"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- ===== Row 0: 密炼物料 ===== -->
<Border Grid.Row="0" Grid.Column="0"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="密炼物料" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3"
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource BorderBrush}" Padding="6,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding SelectedMaterialDisplay}"
VerticalAlignment="Center" FontSize="13" TextTrimming="CharacterEllipsis">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource SecondaryTextBrush}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding HasSelectedMaterial}" Value="True">
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<Button Grid.Column="1" Content="选 择"
Command="{Binding OpenMaterialPickerCommand}"
Style="{StaticResource ButtonPrimary}"
Height="26" Margin="6,0,0,0" FontSize="12" Padding="10,0"/>
<Button Grid.Column="2"
Command="{Binding ClearMaterialCommand}"
Style="{StaticResource ButtonIcon}"
Height="26" Width="24" Margin="4,0,0,0" Padding="0"
ToolTip="清除物料"
Foreground="{DynamicResource SecondaryTextBrush}"
hc:IconElement.Geometry="{StaticResource ErrorGeometry}"/>
</Grid>
</Border>
<!-- ===== Row 1: 批次号 / 入场时间 ===== -->
<Border Grid.Row="1" Grid.Column="0"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="批次号" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="1" Grid.Column="1"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}" Padding="6,0">
<TextBlock Text="{Binding Entry.BatchNo}" VerticalAlignment="Center" FontSize="13"
Foreground="{DynamicResource SecondaryTextBrush}" TextTrimming="CharacterEllipsis"/>
</Border>
<Border Grid.Row="1" Grid.Column="2"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="入场时间" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="1" Grid.Column="3"
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource BorderBrush}" Padding="4,3">
<!-- 自定义日期时间选择器:日历 + 时/分/秒 三列 + 此刻/确定 -->
<ctrls:DateTimeListPicker SelectedDateTime="{Binding Entry.EntryTime, Mode=TwoWay}"
DateTimeFormat="yyyy-MM-dd HH:mm:ss"
Placeholder="请选择入场时间"/>
</Border>
<!-- ===== Row 2: 榜单号 ===== -->
<Border Grid.Row="2" Grid.Column="0"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="榜单号" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3"
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource BorderBrush}" Padding="6,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Entry.BillNo}"
VerticalAlignment="Center" FontSize="13" TextTrimming="CharacterEllipsis"
Foreground="{DynamicResource PrimaryTextBrush}"/>
<Button Grid.Column="1" Content="选 择"
Command="{Binding OpenWeightRecordPickerCommand}"
Style="{StaticResource ButtonPrimary}"
Height="26" Margin="6,0,0,0" FontSize="12" Padding="10,0"/>
<Button Grid.Column="2"
Command="{Binding ClearWeightRecordCommand}"
Style="{StaticResource ButtonIcon}"
Height="26" Width="24" Margin="4,0,0,0" Padding="0"
ToolTip="清除榜单"
Foreground="{DynamicResource SecondaryTextBrush}"
hc:IconElement.Geometry="{StaticResource ErrorGeometry}"/>
</Grid>
</Border>
<!-- ===== Row 3: 供料客户 / 供应商名称 ===== -->
<Border Grid.Row="3" Grid.Column="0"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="供料客户" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="3" Grid.Column="1"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}" Padding="4,0">
<Grid>
<TextBox Text="{Binding Entry.SupplyCustomer, UpdateSourceTrigger=PropertyChanged}"
VerticalContentAlignment="Center" BorderThickness="0" Background="Transparent"
FontSize="13" Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock IsHitTestVisible="False" VerticalAlignment="Center" Margin="4,0"
FontSize="13" Foreground="{DynamicResource SecondaryTextBrush}" Opacity="0.6"
Text="请填写供料客户">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Entry.SupplyCustomer}" Value="">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding Entry.SupplyCustomer}" Value="{x:Null}">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Border>
<Border Grid.Row="3" Grid.Column="2"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="供应商名称" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="3" Grid.Column="3"
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource BorderBrush}" Padding="4,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<TextBox Text="{Binding Entry.SupplierName, UpdateSourceTrigger=PropertyChanged}"
VerticalContentAlignment="Center" BorderThickness="0" Background="Transparent"
FontSize="13" Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock IsHitTestVisible="False" VerticalAlignment="Center" Margin="4,0"
FontSize="13" Foreground="{DynamicResource SecondaryTextBrush}" Opacity="0.6"
Text="自动带出,或手动选择/填写">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Entry.SupplierName}" Value="">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding Entry.SupplierName}" Value="{x:Null}">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
<Button Grid.Column="1" Content="选 择"
Command="{Binding OpenSupplierPickerCommand}"
Style="{StaticResource ButtonPrimary}"
Height="26" Margin="4,0,0,0" FontSize="12" Padding="8,0"/>
<Button Grid.Column="2"
Command="{Binding ClearSupplierCommand}"
Style="{StaticResource ButtonIcon}"
Height="26" Width="24" Margin="2,0,0,0" Padding="0"
ToolTip="清除供应商"
Foreground="{DynamicResource SecondaryTextBrush}"
hc:IconElement.Geometry="{StaticResource ErrorGeometry}"/>
</Grid>
</Border>
<!-- ===== Row 4: 厂家物料名称 / 保质期 ===== -->
<Border Grid.Row="4" Grid.Column="0"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="厂家物料名称" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="11" Foreground="{DynamicResource PrimaryTextBrush}"
TextWrapping="Wrap" TextAlignment="Center"/>
</Border>
<Border Grid.Row="4" Grid.Column="1"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}" Padding="6,0">
<TextBlock Text="{Binding Entry.ManufacturerMaterialName}" VerticalAlignment="Center"
FontSize="13" Foreground="{DynamicResource SecondaryTextBrush}" TextTrimming="CharacterEllipsis"/>
</Border>
<Border Grid.Row="4" Grid.Column="2"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="保质期" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="4" Grid.Column="3"
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource BorderBrush}" Padding="6,0">
<TextBlock Text="{Binding Entry.ShelfLife}" VerticalAlignment="Center" FontSize="13"
Foreground="{DynamicResource SecondaryTextBrush}" TextTrimming="CharacterEllipsis"/>
</Border>
<!-- ===== Row 5: 总重(KG) / 总份数 ===== -->
<Border Grid.Row="5" Grid.Column="0"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="总重(KG)" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="5" Grid.Column="1"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}" Padding="4,4">
<hc:NumericUpDown Value="{Binding TotalWeightInput}"
Minimum="0" DecimalPlaces="2"
Style="{StaticResource NumericUpDownPlus}"
hc:InfoElement.Placeholder="请输入总重"/>
</Border>
<Border Grid.Row="5" Grid.Column="2"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="总份数" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="5" Grid.Column="3"
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource BorderBrush}" Padding="6,0">
<TextBlock Text="{Binding SplitTotalPortionsDisplay}" VerticalAlignment="Center"
FontSize="13" Foreground="{DynamicResource SecondaryTextBrush}"/>
</Border>
<!-- ===== Row 6: 每份总重(KG) / 每份包数 ===== -->
<Border Grid.Row="6" Grid.Column="0"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="每份总重(KG)" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="11" Foreground="{DynamicResource PrimaryTextBrush}"
TextWrapping="Wrap" TextAlignment="Center"/>
</Border>
<Border Grid.Row="6" Grid.Column="1"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}" Padding="6,0">
<TextBlock Text="{Binding SplitPortionWeightDisplay}" VerticalAlignment="Center"
FontSize="13" Foreground="{DynamicResource SecondaryTextBrush}"/>
</Border>
<Border Grid.Row="6" Grid.Column="2"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="每份包数" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="6" Grid.Column="3"
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource BorderBrush}" Padding="6,0">
<TextBlock Text="{Binding SplitPortionPackagesDisplay}" VerticalAlignment="Center"
FontSize="13" Foreground="{DynamicResource SecondaryTextBrush}"/>
</Border>
<!-- ===== Row 7: 库位 / 卸货人 ===== -->
<Border Grid.Row="7" Grid.Column="0"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="库位" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="7" Grid.Column="1"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}" Padding="4,0">
<Grid>
<TextBox Text="{Binding Entry.WarehouseLocation, UpdateSourceTrigger=PropertyChanged}"
VerticalContentAlignment="Center" BorderThickness="0" Background="Transparent"
FontSize="13" Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock IsHitTestVisible="False" VerticalAlignment="Center" Margin="4,0"
FontSize="13" Foreground="{DynamicResource SecondaryTextBrush}" Opacity="0.6"
Text="请填写库位">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Entry.WarehouseLocation}" Value="">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding Entry.WarehouseLocation}" Value="{x:Null}">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Border>
<Border Grid.Row="7" Grid.Column="2"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,1" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="卸货人" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="7" Grid.Column="3"
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource BorderBrush}" Padding="4,0">
<Grid>
<TextBox Text="{Binding Entry.UnloadOperator, UpdateSourceTrigger=PropertyChanged}"
VerticalContentAlignment="Center" BorderThickness="0" Background="Transparent"
FontSize="13" Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock IsHitTestVisible="False" VerticalAlignment="Center" Margin="4,0"
FontSize="13" Foreground="{DynamicResource SecondaryTextBrush}" Opacity="0.6"
Text="请填写卸货人">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Entry.UnloadOperator}" Value="">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding Entry.UnloadOperator}" Value="{x:Null}">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Border>
<!-- ===== Row 8: 备注(末行,无内部底边线) ===== -->
<Border Grid.Row="8" Grid.Column="0"
Background="{DynamicResource SecondaryRegionBrush}"
BorderThickness="0,0,1,0" BorderBrush="{DynamicResource BorderBrush}">
<TextBlock Text="备注" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" Foreground="{DynamicResource PrimaryTextBrush}"/>
</Border>
<Border Grid.Row="8" Grid.Column="1" Grid.ColumnSpan="3" Padding="4,4">
<Grid>
<TextBox Text="{Binding Entry.Remark, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap" AcceptsReturn="True"
VerticalScrollBarVisibility="Auto"
BorderThickness="0" Background="Transparent"
FontSize="13" VerticalContentAlignment="Top"
Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock IsHitTestVisible="False" VerticalAlignment="Top" Margin="4,0"
FontSize="13" Foreground="{DynamicResource SecondaryTextBrush}" Opacity="0.6"
Text="请填写备注">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Entry.Remark}" Value="">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding Entry.Remark}" Value="{x:Null}">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Border>
</Grid>
</Border>
<StackPanel>
<StackPanel.Style>
<Style TargetType="StackPanel">
<Setter Property="Visibility" Value="Collapsed"/>
<Setter Property="Margin" Value="0"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsSpecialAdoptionValue}" Value="1">
<Setter Property="Visibility" Value="Visible"/>
<Setter Property="Margin" Value="0,0,0,4"/>
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<hc:Row Gutter="16">
<hc:Col Span="8">
<hc:TextBox Text="{Binding Entry.SpecialAdoptionOperator, UpdateSourceTrigger=PropertyChanged}"
Height="34"
hc:InfoElement.Title="特采操作人"
hc:InfoElement.TitleWidth="80"
hc:InfoElement.TitlePlacement="Left"
hc:InfoElement.Placeholder="请输入特采操作人"
hc:InfoElement.ShowClearButton="True"
Margin="0,0,0,4"/>
</hc:Col>
<hc:Col Span="8">
<DockPanel Margin="0,0,0,4" LastChildFill="True">
<TextBlock DockPanel.Dock="Left" Text="特采时间" Width="80"
VerticalAlignment="Center"
Foreground="{DynamicResource PrimaryTextBrush}"/>
<ctrls:DateTimeListPicker SelectedDateTime="{Binding Entry.SpecialAdoptionTime, Mode=TwoWay}"
DateTimeFormat="yyyy-MM-dd HH:mm:ss"
Placeholder="请选择特采时间"/>
</DockPanel>
</hc:Col>
</hc:Row>
<hc:TextBox Text="{Binding Entry.SpecialAdoptionReason, UpdateSourceTrigger=PropertyChanged}"
hc:InfoElement.Title="特采原因"
hc:InfoElement.TitleWidth="80"
hc:InfoElement.TitlePlacement="Left"
hc:InfoElement.Placeholder="请输入特采原因"
hc:InfoElement.ShowClearButton="True"
TextWrapping="Wrap"
AcceptsReturn="True"
HorizontalAlignment="Stretch"
Height="64"
VerticalScrollBarVisibility="Auto"
Margin="0,0,0,4"/>
</StackPanel>
<!-- 拆码明细:移出 hc:Row 避免被行高限制裁剪 -->
<Border BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" CornerRadius="6" Padding="12" Margin="0,0,0,8">
<StackPanel>
<DockPanel Margin="0,0,0,10">
<TextBlock Text="拆码明细"
FontSize="14"
FontWeight="SemiBold"
Foreground="{DynamicResource PrimaryTextBrush}"
VerticalAlignment="Center"/>
<Button DockPanel.Dock="Right"
Content="新增明细"
Command="{Binding AddSplitDetailCommand}"
Style="{StaticResource ButtonPrimary}"
Height="30"
Padding="10,0"
FontSize="12"/>
</DockPanel>
<StackPanel>
<!-- 表头 -->
<Grid Background="{DynamicResource SecondaryRegionBrush}" Height="40">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="90"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="份数"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontWeight="SemiBold" FontSize="13"
Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock Grid.Column="1" Text="每份重量(KG)"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontWeight="SemiBold" FontSize="13"
Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock Grid.Column="2" Text="每份包数"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontWeight="SemiBold" FontSize="13"
Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock Grid.Column="3" Text="库位"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontWeight="SemiBold" FontSize="13"
Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock Grid.Column="4" Text="操作"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontWeight="SemiBold" FontSize="13"
Foreground="{DynamicResource PrimaryTextBrush}"/>
</Grid>
<!-- 空状态提示 -->
<TextBlock Text="暂无明细,请点击「新增明细」添加"
HorizontalAlignment="Center"
Foreground="{DynamicResource SecondaryTextBrush}"
FontSize="12"
Margin="0,14">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding SplitCodeDetails.Count}" Value="0">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<!-- 数据行:行高对齐表头 40px输入框给足上下边距避免边框被裁切 -->
<ItemsControl ItemsSource="{Binding SplitCodeDetails}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Height="44">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="90"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,0,0,1">
<TextBox Text="{Binding Portions, UpdateSourceTrigger=PropertyChanged}"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
VerticalAlignment="Center" Height="32"
BorderBrush="#D9D9D9" BorderThickness="1"
Background="White" FontSize="13" Margin="4,0"/>
</Border>
<Border Grid.Column="1" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,0,0,1">
<TextBox Text="{Binding PortionWeight, UpdateSourceTrigger=PropertyChanged}"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
VerticalAlignment="Center" Height="32"
BorderBrush="#D9D9D9" BorderThickness="1"
Background="White" FontSize="13" Margin="4,0"/>
</Border>
<Border Grid.Column="2" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,0,0,1">
<TextBox Text="{Binding PortionPackages, UpdateSourceTrigger=PropertyChanged}"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
VerticalAlignment="Center" Height="32"
BorderBrush="#D9D9D9" BorderThickness="1"
Background="White" FontSize="13" Margin="4,0"/>
</Border>
<Border Grid.Column="3" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,0,0,1">
<TextBox Text="{Binding WarehouseLocation, UpdateSourceTrigger=PropertyChanged}"
HorizontalContentAlignment="Stretch" VerticalContentAlignment="Center"
VerticalAlignment="Center" Height="32"
BorderBrush="#D9D9D9" BorderThickness="1"
Background="White" FontSize="13" Padding="8,0" Margin="4,0"/>
</Border>
<Border Grid.Column="4" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,0,0,1">
<Button Content="删除"
Command="{Binding DataContext.RemoveSplitDetailCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}"
CommandParameter="{Binding}"
Style="{StaticResource ButtonDanger}"
VerticalAlignment="Center" Height="28"
Padding="6,0" Margin="12,0" FontSize="11"/>
</Border>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</StackPanel>
</Border>
</StackPanel>
</hc:ScrollViewer>
<GridSplitter x:Name="RightPaneSplitter"
Grid.Column="1"
Width="4"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ResizeBehavior="PreviousAndNext"
ShowsPreview="True"
Cursor="SizeWE"
Background="{DynamicResource RegionBrush}"
PreviewStyle="{StaticResource GridSplitterPreviewStyle}"
DragCompleted="RightPaneSplitter_OnDragCompleted"/>
<Border Grid.Column="2"
BorderBrush="{DynamicResource BorderBrush}"
BorderThickness="1,0,0,0"
Background="{DynamicResource RegionBrush}">
<DockPanel LastChildFill="True">
<Border DockPanel.Dock="Top" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,0,0,1" Padding="8,6">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical">
<TextBlock Text="今日入场" FontWeight="SemiBold" FontSize="13"
Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock Text="按入场/创建日期为本日的记录" FontSize="11" Opacity="0.65"
Foreground="{DynamicResource SecondaryTextBrush}" TextWrapping="Wrap"/>
</StackPanel>
<Button Grid.Column="1" Content="刷新" Margin="4,0"
Command="{Binding RefreshTodayEntriesCommand}"
Style="{StaticResource ButtonPrimary}" Padding="8,2" FontSize="11" Height="26"/>
</Grid>
</Border>
<Border DockPanel.Dock="Top" Background="{DynamicResource SecondaryRegionBrush}" Height="28" Padding="8,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="条码" FontWeight="SemiBold" FontSize="11"
VerticalAlignment="Center"
Foreground="{DynamicResource PrimaryTextBrush}"/>
<TextBlock Grid.Column="1" Text="物料" FontWeight="SemiBold" FontSize="11"
Margin="6,0,0,0" VerticalAlignment="Center"
Foreground="{DynamicResource PrimaryTextBrush}"/>
</Grid>
</Border>
<ListBox ItemsSource="{Binding TodayEntries}"
SelectedItem="{Binding SelectedTodayEntry, Mode=TwoWay}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
BorderThickness="0"
Background="Transparent"
ItemContainerStyle="{StaticResource TodayEntryListBoxItemStyle}">
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type core:MesXslRawMaterialEntry}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Barcode}" FontSize="12"
TextTrimming="CharacterEllipsis"
Foreground="{DynamicResource PrimaryTextBrush}"
ToolTip="{Binding Barcode}"/>
<TextBlock Grid.Column="1" Text="{Binding MaterialName}" FontSize="12"
TextTrimming="CharacterEllipsis" Margin="6,0,0,0"
Foreground="{DynamicResource SecondaryTextBrush}"
ToolTip="{Binding MaterialName}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DockPanel>
</Border>
</Grid>
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,12,0,20">
<Button Content="重置" Command="{Binding ResetCommand}" Style="{StaticResource ButtonDefault}" Margin="0,0,15,0" Width="100"/>
<Button Content="保存" Command="{Binding SaveCommand}" Style="{StaticResource ButtonPrimary}" Width="100" Margin="0,0,15,0"/>
<Button Content="生成原材料卡片"
Command="{Binding GenerateRawMaterialCardsCommand}"
Style="{StaticResource ButtonDefault}"
Width="130"
IsEnabled="{Binding CanGenerateCards}"
ToolTip="根据拆码明细生成原材料卡片(需先保存入场记录)"/>
</StackPanel>
</Grid>
</UserControl>