OutboundMaterialPage.xaml 8.8 KB
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IndustrialControl.Pages.OutboundMaterialPage"
             BackgroundColor="White">

    <Grid RowDefinitions="Auto,Auto,Auto,*,Auto">

        <!-- 顶部蓝色标题栏 -->
        <Grid BackgroundColor="#007BFF" HeightRequest="60" Padding="16,0">
            <Label Text="仓储管理系统"
                   VerticalOptions="Center"
                   TextColor="White"
                   FontSize="18"
                   FontAttributes="Bold"/>
        </Grid>

        <!-- 出库单/条码扫描 -->
        <Grid Grid.Row="1" ColumnDefinitions="*,60" Padding="16,8">
            <Entry x:Name="ScanEntry"
                   Placeholder="请扫描出库单/产品/包装条码"
                   FontSize="14"
                   VerticalOptions="Center"
                   BackgroundColor="White"
                   HeightRequest="40"
                   Text="{Binding ScanCode}" />
            <ImageButton Grid.Column="1"
                         Source="scan.png"
                         BackgroundColor="#E6F2FF"
                         CornerRadius="4"
                         Padding="10"
                         Clicked="OnScanClicked"/>
        </Grid>

        <!-- 基础信息 -->
        <Frame Grid.Row="2" Margin="16,0" Padding="8" BorderColor="#CCCCCC" BackgroundColor="White">
            <Grid RowDefinitions="Auto,Auto,Auto,Auto" ColumnDefinitions="Auto,*" ColumnSpacing="8" RowSpacing="6">

                <!-- 出库单号 -->
                <Label Grid.Row="0" Grid.Column="0" Text="出库单号:" FontAttributes="Bold"/>
                <Label Grid.Row="0" Grid.Column="1" Text="{Binding OrderNo}" LineBreakMode="CharacterWrap"/>

                <!-- 发货单号 + 客户 -->
                <Label Grid.Row="1" Grid.Column="0" Text="发货单号:" FontAttributes="Bold"/>
                <Label Grid.Row="1" Grid.Column="1" Text="{Binding DeliveryNo}" LineBreakMode="CharacterWrap"/>
                <Label Grid.Row="1" Grid.Column="2" Text="客户:" FontAttributes="Bold"/>
                <Label Grid.Row="1" Grid.Column="3" Text="{Binding CustomerName}" LineBreakMode="CharacterWrap"/>

                <!-- 发货时间 + 关联销售单 -->
                <Label Grid.Row="2" Grid.Column="0" Text="发货时间:" FontAttributes="Bold"/>
                <Label Grid.Row="2" Grid.Column="1" Text="{Binding DeliveryTime}" LineBreakMode="CharacterWrap"/>
                <Label Grid.Row="2" Grid.Column="2" Text="关联销售单:" FontAttributes="Bold"/>
                <Label Grid.Row="2" Grid.Column="3" Text="{Binding LinkedOrderNo}" LineBreakMode="CharacterWrap"/>

                <!-- 发货单备注 -->
                <Label Grid.Row="3" Grid.Column="0" Text="发货单备注:" FontAttributes="Bold"/>
                <Label Grid.Row="3" Grid.Column="1" Text="{Binding Remark}" LineBreakMode="WordWrap"/>
            </Grid>
        </Frame>

        <!-- Tab + 列表 -->
        <Grid Grid.Row="3" RowDefinitions="Auto,Auto,*">

            <!-- Tab -->
            <Grid ColumnDefinitions="*,*" BackgroundColor="White">
                <Button Text="出库单明细"
                        BackgroundColor="{Binding PendingTabColor}"
                        TextColor="{Binding PendingTextColor}"
                        Clicked="OnPendingTabClicked"/>
                <Button Text="扫描明细"
                        Grid.Column="1"
                        BackgroundColor="{Binding ScannedTabColor}"
                        TextColor="{Binding ScannedTextColor}"
                        Clicked="OnScannedTabClicked"/>
            </Grid>

            <!-- 出库单明细表头 -->
            <Grid Grid.Row="1"
                  ColumnDefinitions="2*,2*,1.5*,1.5*,1.5*,1.5*,1.5*"
                  BackgroundColor="#F2F2F2"
                  IsVisible="{Binding IsPendingVisible}"
                  Padding="4">
                <Label Text="产品名称" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                <Label Grid.Column="1" Text="产品编码" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                <Label Grid.Column="2" Text="规格" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                <Label Grid.Column="3" Text="出库库位" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                <Label Grid.Column="4" Text="批次号" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                <Label Grid.Column="5" Text="出库数量" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                <Label Grid.Column="6" Text="已扫描数" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
            </Grid>

            <!-- 出库单明细列表 -->
            <CollectionView Grid.Row="2"
                            ItemsSource="{Binding PendingList}"
                            IsVisible="{Binding IsPendingVisible}">
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        <Grid ColumnDefinitions="2*,2*,1.5*,1.5*,1.5*,1.5*,1.5*" Padding="4" BackgroundColor="White">
                            <Label Text="{Binding Name}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Grid.Column="1" Text="{Binding Code}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Grid.Column="2" Text="{Binding Spec}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Grid.Column="3" Text="{Binding Bin}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Grid.Column="4" Text="{Binding BatchNo}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Grid.Column="5" Text="{Binding OutQty}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Grid.Column="6" Text="{Binding ScannedQty}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                        </Grid>
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>

            <!-- 扫描明细表头 -->
            <Grid Grid.Row="1"
                  ColumnDefinitions="40,*,*,*"
                  BackgroundColor="#F2F2F2"
                  IsVisible="{Binding IsScannedVisible}"
                  Padding="4">
                <Label Text="选择" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                <Label Grid.Column="1" Text="条码" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                <Label Grid.Column="2" Text="物料名称" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                <Label Grid.Column="3" Text="数量" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
            </Grid>

            <!-- 扫描明细列表 -->
            <CollectionView Grid.Row="2"
                            ItemsSource="{Binding ScannedList}"
                            IsVisible="{Binding IsScannedVisible}">
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        <Grid ColumnDefinitions="40,*,*,*" Padding="4" BackgroundColor="White">
                            <CheckBox IsChecked="{Binding IsSelected}" HorizontalOptions="Center" VerticalOptions="Center"/>
                            <Label Grid.Column="1" Text="{Binding Barcode}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Grid.Column="2" Text="{Binding Name}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                            <Label Grid.Column="3" Text="{Binding Qty}" HorizontalTextAlignment="Center" VerticalTextAlignment="Center"/>
                        </Grid>
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>
        </Grid>

        <!-- 底部按钮 -->
        <Grid Grid.Row="4" ColumnDefinitions="*,*,*" Padding="16,8" ColumnSpacing="10">
            <Button Text="扫描通过" BackgroundColor="#4CAF50" TextColor="White" Clicked="OnPassScanClicked"/>
            <Button Grid.Column="1" Text="取消扫描" BackgroundColor="#F44336" TextColor="White" Clicked="OnCancelScanClicked"/>
            <Button Grid.Column="2" Text="确认出库" BackgroundColor="#2196F3" TextColor="White" Clicked="OnConfirmClicked"/>
        </Grid>

    </Grid>
</ContentPage>