MoldOutboundExecuteViewModel.cs 1.5 KB
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System.Collections.ObjectModel;

namespace IndustrialControl.ViewModels;

public partial class MoldOutboundExecuteViewModel : ObservableObject
{
    [ObservableProperty] private string? orderNo;

    public ObservableCollection<MoldOutboundDetailRow> ScanDetails { get; } = new();

    [RelayCommand]
    public async Task LoadAsync(string orderNo)
    {
        OrderNo = orderNo;

        // TODO: 调接口获取:需求基础信息 + 扫描明细
        await Task.Delay(80);

        // mock 数据
        ScanDetails.Clear();
        ScanDetails.Add(new MoldOutboundDetailRow { Index = 1, MoldCode = "XXX", MoldModel = "MU_DHJD_01", Qty = 1, Bin = "A202", Selected = true });
        ScanDetails.Add(new MoldOutboundDetailRow { Index = 2, MoldCode = "XXX", MoldModel = "MU_DHJD_01", Qty = 1, Bin = "A202" });
        ScanDetails.Add(new MoldOutboundDetailRow { Index = 3, MoldCode = "XXX", MoldModel = "MU_DHJD_02", Qty = 1, Bin = "A202" });
    }

    [RelayCommand] public Task ConfirmAsync() => Task.CompletedTask; // TODO
    [RelayCommand] public Task CancelScanAsync() => Task.CompletedTask; // TODO
}

public class MoldOutboundDetailRow
{
    public int Index { get; set; }
    public bool Selected { get; set; }
    public string MoldCode { get; set; } = "";
    public string MoldModel { get; set; } = "";
    public int Qty { get; set; }
    public string Bin { get; set; } = "";
}