Files
FATrace/FATrace.WPLApp/Views/RawProInputView.xaml
2025-10-29 11:42:58 +08:00

173 lines
8.9 KiB
XML

<UserControl
x:Class="FATrace.WPLApp.Views.RawProInputView"
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:prism="http://prismlibrary.com/"
prism:ViewModelLocator.AutoWireViewModel="True"
mc:Ignorable="d"
d:DesignWidth="1280" d:DesignHeight="720">
<UserControl.Resources>
<!-- 布尔到可见性转换器,用于显示忙碌状态 -->
<BooleanToVisibilityConverter x:Key="Bool2Vis" />
</UserControl.Resources>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- 查询条件区域 -->
<Border Grid.Row="0" Padding="10" Background="#F9F9F9" BorderBrush="#DDDDDD" BorderThickness="1" CornerRadius="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 第一行:编码/名称/批号 -->
<StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="0" Margin="0,0,10,8">
<TextBlock VerticalAlignment="Center" Text="原料编号:"/>
<TextBox Width="160" Text="{Binding RawCode, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="1" Margin="0,0,10,8">
<TextBlock VerticalAlignment="Center" Text="原料名称:"/>
<TextBox Width="160" Text="{Binding RawName, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="2" Margin="0,0,10,8">
<TextBlock VerticalAlignment="Center" Text="批号:"/>
<TextBox Width="160" Text="{Binding Batch, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
<!-- 第二行:来源/状态 -->
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0" Margin="0,0,10,8">
<TextBlock VerticalAlignment="Center" Text="原料来源:"/>
<ComboBox Width="160"
ItemsSource="{Binding RawSourceValues}"
SelectedItem="{Binding SelectedRawSource, Mode=TwoWay}"
IsEditable="False"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="1" Margin="0,0,10,8">
<TextBlock VerticalAlignment="Center" Text="分拆状态:"/>
<ComboBox Width="160"
ItemsSource="{Binding RawSplitStateValues}"
SelectedItem="{Binding SelectedRawState, Mode=TwoWay}"
IsEditable="False"/>
</StackPanel>
<!-- 第三行:时间范围与操作按钮 -->
<StackPanel Orientation="Horizontal" Grid.Row="2" Grid.Column="0" Margin="0,5,10,0">
<TextBlock VerticalAlignment="Center" Text="开始:"/>
<DatePicker Width="160" SelectedDate="{Binding StartTime, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="2" Grid.Column="1" Margin="0,5,10,0">
<TextBlock VerticalAlignment="Center" Text="结束:"/>
<DatePicker Width="160" SelectedDate="{Binding EndTime, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="2" Grid.Column="3" Margin="0,5,10,0" HorizontalAlignment="Right">
<Button Content="查询" Width="80" Margin="0,0,8,0" Command="{Binding SearchCommand}"/>
<Button Content="清空" Width="80" Margin="0,0,8,0" Command="{Binding ClearCommand}"/>
<Button Content="导出Excel" Width="100" Command="{Binding ExportCommand}"/>
</StackPanel>
</Grid>
</Border>
<!-- 列表区域 -->
<DataGrid Grid.Row="1" Margin="0,10,0,10"
ItemsSource="{Binding Items}"
AutoGenerateColumns="False"
CanUserAddRows="False"
IsReadOnly="True">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding Id}" Width="80"/>
<DataGridTextColumn Header="原料编号" Binding="{Binding RawCode}" Width="120"/>
<DataGridTextColumn Header="原料名称" Binding="{Binding RawName}" Width="160"/>
<DataGridTextColumn Header="入库重量(kg)" Binding="{Binding Weight}" Width="120"/>
<DataGridTextColumn Header="批号" Binding="{Binding Batch}" Width="120"/>
<DataGridTextColumn Header="保质期(年)" Binding="{Binding ShelfLife}" Width="100"/>
<DataGridTextColumn Header="原料来源" Binding="{Binding RawSource}" Width="120"/>
<DataGridTextColumn Header="剩余重量(kg)" Binding="{Binding RemainWeight}" Width="120"/>
<DataGridTextColumn Header="分拆状态" Binding="{Binding RawState}" Width="120"/>
<DataGridTextColumn Header="创建时间" Binding="{Binding CreateTime, StringFormat=yyyy-MM-dd HH:mm:ss}" Width="160"/>
</DataGrid.Columns>
</DataGrid>
<!-- 状态栏 -->
<StatusBar Grid.Row="2">
<StatusBarItem>
<TextBlock Text="本页:"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock Text="{Binding Items.Count}"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock Text=" 总数:"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock Text="{Binding TotalCount}"/>
</StatusBarItem>
<StatusBarItem>
<Separator Width="20"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock Text="页码:"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock Text="{Binding PageIndex}"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock Text="/"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock Text="{Binding TotalPages}"/>
</StatusBarItem>
<StatusBarItem>
<Button Content="|&lt;" Width="40" Margin="5,0" Command="{Binding FirstPageCommand}"/>
</StatusBarItem>
<StatusBarItem>
<Button Content="&lt;" Width="40" Margin="5,0" Command="{Binding PrevPageCommand}"/>
</StatusBarItem>
<StatusBarItem>
<Button Content="&gt;" Width="40" Margin="5,0" Command="{Binding NextPageCommand}"/>
</StatusBarItem>
<StatusBarItem>
<Button Content="&gt;|" Width="40" Margin="5,0" Command="{Binding LastPageCommand}"/>
</StatusBarItem>
<StatusBarItem>
<Separator Width="20"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock Text="页大小:"/>
</StatusBarItem>
<StatusBarItem>
<ComboBox Width="80" SelectedValue="{Binding PageSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="Content">
<ComboBoxItem Content="10"/>
<ComboBoxItem Content="20"/>
<ComboBoxItem Content="50"/>
<ComboBoxItem Content="100"/>
</ComboBox>
</StatusBarItem>
<StatusBarItem HorizontalAlignment="Right">
<TextBlock Text="正在处理..." Visibility="{Binding IsBusy, Converter={StaticResource Bool2Vis}}"/>
</StatusBarItem>
</StatusBar>
</Grid>
</UserControl>