OutboundMaterialPage.xaml.cs 2.2 KB
using IndustrialControl.Services;
using IndustrialControl.ViewModels;

namespace IndustrialControl.Pages
{
    public partial class OutboundMaterialPage : ContentPage
    {
        private readonly ScanService _scanSvc;
        private readonly OutboundMaterialViewModel _vm;

        public OutboundMaterialPage(OutboundMaterialViewModel vm, ScanService scanSvc)
        {
            InitializeComponent();
            BindingContext = vm;
            _scanSvc = scanSvc;
            _vm = vm;
        }

        protected override void OnAppearing()
        {
            base.OnAppearing();
            _scanSvc.Attach(ScanEntry);
            ScanEntry.Focus();
        }

        // Tab切换
        void OnPendingTabClicked(object sender, EventArgs e)
        {
            _vm.IsPendingVisible = true;
            _vm.IsScannedVisible = false;
        }

        void OnScannedTabClicked(object sender, EventArgs e)
        {
            _vm.IsPendingVisible = false;
            _vm.IsScannedVisible = true;
        }

        // 清空扫描记录
        void OnClearClicked(object sender, EventArgs e)
        {
            _vm.ClearScan();
            ScanEntry.Text = string.Empty;
            ScanEntry.Focus();
        }

        // 摄像头扫码按钮
        async void OnScanClicked(object sender, EventArgs e)
        {
            await DisplayAlert("提示", "此按钮预留摄像头扫码;硬件扫描直接扣扳机。", "确定");
        }

        // 扫描通过
        void OnPassScanClicked(object sender, EventArgs e)
        {
            _vm.PassSelectedScan();
        }

        // 取消扫描
        void OnCancelScanClicked(object sender, EventArgs e)
        {
            _vm.CancelSelectedScan();
        }

        // 确认出库
        async void OnConfirmClicked(object sender, EventArgs e)
        {
            var ok = await _vm.ConfirmOutboundAsync();
            if (ok)
            {
                await DisplayAlert("提示", "出库成功", "确定");
                _vm.ClearAll();
            }
            else
            {
                await DisplayAlert("提示", "出库失败,请检查数据", "确定");
            }
        }
    }
}