OutboundFinishedPage.xaml 11.6 KB
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IndustrialControl.Pages.OutboundFinishedPage"
             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 OrderNo}" />
            <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,* ,Auto,*"
          ColumnSpacing="8"
          RowSpacing="6">

                <!-- 出库单号(独占一行) -->
                <Label Grid.Row="0" Grid.Column="0" Text="出库单号:" FontAttributes="Bold" VerticalOptions="Center" />
                <Label Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3" 
               Text="{Binding OrderNo}" VerticalOptions="Center" />

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

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

                <!-- 发货单备注(独占一行) -->
                <Label Grid.Row="3" Grid.Column="0" Text="发货单备注:" FontAttributes="Bold" VerticalOptions="Center" />
                <Label Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3" 
               Text="{Binding Remark}" VerticalOptions="Center" />

            </Grid>
        </Frame>



        <!-- Tab切换 + 表格 -->
        <Grid Grid.Row="3" RowDefinitions="Auto,Auto,*" Margin="0">
            <!-- 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*,2*,2*,1.5*,1.5*"
      BackgroundColor="#F2F2F2"
      IsVisible="{Binding IsPendingVisible}"
      Padding="4"
      HeightRequest="50">
                <Label Text="产品名称" FontAttributes="Bold"
           HorizontalTextAlignment="Center"
           VerticalTextAlignment="Center"
           LineBreakMode="WordWrap"/>
                <Label Grid.Column="1" Text="产品编码" FontAttributes="Bold"
           HorizontalTextAlignment="Center"
           VerticalTextAlignment="Center"
           LineBreakMode="WordWrap"/>
                <Label Grid.Column="2" Text="规格" FontAttributes="Bold"
           HorizontalTextAlignment="Center"
           VerticalTextAlignment="Center"
           LineBreakMode="WordWrap"/>
                <Label Grid.Column="3" Text="出库库位" FontAttributes="Bold"
           HorizontalTextAlignment="Center"
           VerticalTextAlignment="Center"
           LineBreakMode="WordWrap"/>
                <Label Grid.Column="4" Text="生产批号" FontAttributes="Bold"
           HorizontalTextAlignment="Center"
           VerticalTextAlignment="Center"
           LineBreakMode="WordWrap"/>
                <Label Grid.Column="5" Text="出库数量" FontAttributes="Bold"
           HorizontalTextAlignment="Center"
           VerticalTextAlignment="Center"
           LineBreakMode="WordWrap"/>
                <Label Grid.Column="6" Text="已扫描数" FontAttributes="Bold"
           HorizontalTextAlignment="Center"
           VerticalTextAlignment="Center"
           LineBreakMode="WordWrap"/>
            </Grid>

            <!-- 出库单明细列表 -->
            <CollectionView Grid.Row="2"
                ItemsSource="{Binding PendingList}"
                IsVisible="{Binding IsPendingVisible}">
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        <Grid ColumnDefinitions="2*,2*,1.5*,2*,2*,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"
          HeightRequest="30">
                <Label Text="选择" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" LineBreakMode="NoWrap"/>
                <Label Grid.Column="1" Text="条码" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" LineBreakMode="NoWrap"/>
                <Label Grid.Column="2" Text="产品名称" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" LineBreakMode="NoWrap"/>
                <Label Grid.Column="3" Text="数量" FontAttributes="Bold" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" LineBreakMode="NoWrap"/>
            </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">

            <!-- 扫描通过 -->
            <HorizontalStackLayout BackgroundColor="#4CAF50"
                           Padding="10"
                           HorizontalOptions="FillAndExpand"
                           VerticalOptions="Center"
                           Grid.Column="0">
                <Image Source="pass.png" WidthRequest="20" HeightRequest="20" />
                <Label Text="扫描通过"
               VerticalOptions="Center"
               HorizontalOptions="Center"
               TextColor="White"
               Margin="5,0,0,0" />
                <HorizontalStackLayout.GestureRecognizers>
                    <TapGestureRecognizer Command="{Binding PassScanCommand}" />
                </HorizontalStackLayout.GestureRecognizers>
            </HorizontalStackLayout>

            <!-- 取消扫描 -->
            <HorizontalStackLayout BackgroundColor="#F44336"
                           Padding="10"
                           HorizontalOptions="FillAndExpand"
                           VerticalOptions="Center"
                           Grid.Column="1">
                <Image Source="cancel.png" WidthRequest="20" HeightRequest="20" />
                <Label Text="取消扫描"
               VerticalOptions="Center"
               HorizontalOptions="Center"
               TextColor="White"
               Margin="5,0,0,0" />
                <HorizontalStackLayout.GestureRecognizers>
                    <TapGestureRecognizer Command="{Binding CancelScanCommand}" />
                </HorizontalStackLayout.GestureRecognizers>
            </HorizontalStackLayout>

            <!-- 确认出库 -->
            <HorizontalStackLayout BackgroundColor="#2196F3"
                           Padding="10"
                           HorizontalOptions="FillAndExpand"
                           VerticalOptions="Center"
                           Grid.Column="2">
                <Image Source="confirm.png" WidthRequest="20" HeightRequest="20" />
                <Label Text="确认出库"
               VerticalOptions="Center"
               HorizontalOptions="Center"
               TextColor="White"
               Margin="5,0,0,0" />
                <HorizontalStackLayout.GestureRecognizers>
                    <TapGestureRecognizer Command="{Binding ConfirmCommand}" />
                </HorizontalStackLayout.GestureRecognizers>
            </HorizontalStackLayout>

        </Grid>

    </Grid>
</ContentPage>