476 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			476 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C#
		
	
	
	
using Common.Logging;
 | 
						|
using DM_Weight.Models;
 | 
						|
using DM_Weight.msg;
 | 
						|
using DM_Weight.Port;
 | 
						|
using DM_Weight.select;
 | 
						|
using DM_Weight.util;
 | 
						|
using Prism.Commands;
 | 
						|
using Prism.Events;
 | 
						|
using Prism.Mvvm;
 | 
						|
using Prism.Regions;
 | 
						|
using Prism.Services.Dialogs;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
using System.Threading;
 | 
						|
using System.Threading.Tasks;
 | 
						|
 | 
						|
namespace DM_Weight.ViewModels
 | 
						|
{
 | 
						|
    public class ExchangeDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
 | 
						|
    {
 | 
						|
        private readonly ILog logger = LogManager.GetLogger(typeof(RemoveDialogViewModel));
 | 
						|
        public string Title => "替换药品";
 | 
						|
 | 
						|
        public event Action<IDialogResult> RequestClose;
 | 
						|
 | 
						|
        private static readonly DateTime Jan1st1970 = new DateTime
 | 
						|
   (1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
 | 
						|
 | 
						|
        IEventAggregator _eventAggregator;
 | 
						|
 | 
						|
        private List<ChannelStock> _channelStocks = new();
 | 
						|
        public List<ChannelStock> _ChannelStocks
 | 
						|
        {
 | 
						|
            get => _channelStocks;
 | 
						|
            set { SetProperty(ref _channelStocks, value); }
 | 
						|
        }
 | 
						|
 | 
						|
        private ChannelStock _csStock;
 | 
						|
        public ChannelStock _ChannelStock
 | 
						|
        {
 | 
						|
            get { return _csStock; }
 | 
						|
            set { SetProperty(ref _csStock, value); }
 | 
						|
        }
 | 
						|
        SocketHelper _socketHelper;
 | 
						|
        public ExchangeDialogViewModel(IEventAggregator eventAggregator, SocketHelper socketHelper)
 | 
						|
        {
 | 
						|
            _eventAggregator = eventAggregator;
 | 
						|
            _socketHelper = socketHelper;
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        private int _status = 0;
 | 
						|
 | 
						|
        public int Status
 | 
						|
        {
 | 
						|
            get => _status; set => SetProperty(ref _status, value);
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        static List<OrderTakeSelect> StaticSelects = new List<OrderTakeSelect>()
 | 
						|
        {
 | 
						|
            new OrderTakeSelect{Name="一号手术间",Code="1"},
 | 
						|
            new OrderTakeSelect{Name="二号手术间",Code="2"},
 | 
						|
            new OrderTakeSelect{Name="三号手术间",Code="3"},
 | 
						|
            new OrderTakeSelect{Name="四号手术间",Code="4"},
 | 
						|
            new OrderTakeSelect{Name="五号手术间",Code="5"},
 | 
						|
            new OrderTakeSelect{Name="六号手术间",Code="6"},
 | 
						|
            new OrderTakeSelect{Name="七号手术间",Code="7"},
 | 
						|
            new OrderTakeSelect{Name="八号手术间",Code="8"},
 | 
						|
            new OrderTakeSelect{Name="九号手术间",Code="9"},
 | 
						|
            new OrderTakeSelect{Name="十号手术间",Code="10"},
 | 
						|
            new OrderTakeSelect{Name="十一号手术间",Code="11"},
 | 
						|
            new OrderTakeSelect{Name="十二号手术间",Code="12"},
 | 
						|
            new OrderTakeSelect{Name="十三号手术间",Code="13"},
 | 
						|
            new OrderTakeSelect{Name="十四号手术间",Code="14"},
 | 
						|
            new OrderTakeSelect{Name="十五号手术间",Code="15"},
 | 
						|
            new OrderTakeSelect{Name="十六号手术间",Code="16"},
 | 
						|
            new OrderTakeSelect{Name="十七号手术间",Code="17"},
 | 
						|
            new OrderTakeSelect{Name="十八号手术间",Code="18"},
 | 
						|
        };
 | 
						|
 | 
						|
        private List<OrderTakeSelect> _selects = StaticSelects;
 | 
						|
 | 
						|
        public List<OrderTakeSelect> Selects
 | 
						|
        {
 | 
						|
            get { return _selects; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                SetProperty(ref _selects, value);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private OrderTakeSelect _selectedItem = StaticSelects[0];
 | 
						|
        public OrderTakeSelect SelectedItem
 | 
						|
        {
 | 
						|
            get => _selectedItem;
 | 
						|
            set
 | 
						|
            {
 | 
						|
                RequestData(value.Code);
 | 
						|
                SetProperty(ref _selectedItem, value);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        //去掉移出的药箱号
 | 
						|
        private OrderTakeSelect _removeItem = new();
 | 
						|
        public OrderTakeSelect RemoveItem
 | 
						|
        {
 | 
						|
            get => _removeItem;
 | 
						|
            set
 | 
						|
            {
 | 
						|
                SetProperty(ref _removeItem, value);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        public bool CanCloseDialog()
 | 
						|
        {
 | 
						|
            return Status == 0;
 | 
						|
        }
 | 
						|
 | 
						|
        public void OnDialogClosed()
 | 
						|
        {
 | 
						|
            Selects.Insert(_ChannelStock.DrawerNo - 1, RemoveItem);
 | 
						|
        }
 | 
						|
 | 
						|
        public void OnDialogOpened(IDialogParameters parameters)
 | 
						|
        {
 | 
						|
            ChannelStock _csStock = parameters.GetValue<ChannelStock>("csStock");
 | 
						|
            _ChannelStock = _csStock;
 | 
						|
            RemoveItem = Selects[_ChannelStock.DrawerNo - 1];
 | 
						|
            Selects.Remove(RemoveItem);
 | 
						|
 | 
						|
            //RequestData();
 | 
						|
        }
 | 
						|
 | 
						|
        public void RequestData(string code)
 | 
						|
        {
 | 
						|
            _ChannelStocks = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
						|
                .Where(cl => cl.MachineId == "DM5")
 | 
						|
                .WhereIF(!string.IsNullOrEmpty(code), cl => cl.DrawerNo == Convert.ToInt32(code))
 | 
						|
                .Where(cl => cl.DrawerType == 1)
 | 
						|
                .Where(cl => cl.DrugId == _ChannelStock.DrugId && cl.ManuNo != _ChannelStock.ManuNo)
 | 
						|
                .Includes<DrugInfo>(cs => cs.DrugInfo)
 | 
						|
                .ToList();
 | 
						|
        }
 | 
						|
        //开药盒
 | 
						|
        public DelegateCommand OpenDrawer
 | 
						|
        {
 | 
						|
            get => new DelegateCommand(async () =>
 | 
						|
            {
 | 
						|
                if (SelectedItem.Code != null)
 | 
						|
                {
 | 
						|
                    await OpenBox();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    AlertMsg alertMsg = new AlertMsg
 | 
						|
                    {
 | 
						|
                        Message = "请选择要替换的药箱!",
 | 
						|
                        Type = MsgType.ERROR,
 | 
						|
                    };
 | 
						|
                    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
						|
                }
 | 
						|
 | 
						|
            }, () => Status == 0);
 | 
						|
        }
 | 
						|
 | 
						|
        private async Task OpenBox()
 | 
						|
        {
 | 
						|
            if (_socketHelper.OpenStatus)
 | 
						|
            {
 | 
						|
                _socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
						|
                _socketHelper.speechSynthesizer.Resume();
 | 
						|
                _socketHelper.SpeakAsync("请关闭手术间后再打开");
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            MachineRecord machineRecord = new MachineRecord();
 | 
						|
            machineRecord.MachineId = "DM5";
 | 
						|
            machineRecord.DrawerNo = Convert.ToInt32(SelectedItem.Code);
 | 
						|
            machineRecord.Operator = HomeWindowViewModel.Operator?.Id;
 | 
						|
            machineRecord.OperationTime = DateTime.Now;
 | 
						|
            machineRecord.Type = 55;
 | 
						|
            machineRecord.InvoiceId = $"交换药品明细{_ChannelStock?.DrawerNo},打开{Convert.ToInt32(SelectedItem.Code)}号手术间";
 | 
						|
 | 
						|
 | 
						|
            if (Convert.ToInt32(SelectedItem.Code) > 0)
 | 
						|
            {
 | 
						|
                Status = 1;
 | 
						|
                _socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
						|
                _socketHelper.speechSynthesizer.Resume();
 | 
						|
                _socketHelper.SpeakAsync($"正在打开{SelectedItem.Code}号手术间");
 | 
						|
                logger.Info($"正在打开{SelectedItem.Code}号手术间");
 | 
						|
                //记录开药箱日志
 | 
						|
                SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
 | 
						|
                try
 | 
						|
                {
 | 
						|
                    _socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(Convert.ToInt32(SelectedItem.Code) - 1) });
 | 
						|
                    _socketHelper.dateTime = DateTime.Now;
 | 
						|
                }
 | 
						|
                catch (Exception ex)
 | 
						|
                {
 | 
						|
                    AlertMsg alertMsg = new AlertMsg
 | 
						|
                    {
 | 
						|
                        Message = $"网口连接异常,正在重试{ex.Message}",
 | 
						|
                        Type = MsgType.ERROR,
 | 
						|
                    };
 | 
						|
                    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
						|
                    logger.Info($"网口连接异常,正在重试{ex.Message}");
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                _socketHelper.OpenStatus = true;
 | 
						|
                //记录药箱打开时间
 | 
						|
                ChannelList channelList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerNo == _ChannelStock.DrawerNo).First();
 | 
						|
                if (channelList != null && (channelList.EffDate is null || Convert.ToDateTime(channelList.EffDate).ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd")))
 | 
						|
                {
 | 
						|
 | 
						|
                    channelList.EffDate = DateTime.Now.ToString();
 | 
						|
                    SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate }).ExecuteCommand();
 | 
						|
                }
 | 
						|
                Thread.Sleep(200);
 | 
						|
                int iException = 0;
 | 
						|
                await new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
 | 
						|
                {
 | 
						|
                    try
 | 
						|
                    {
 | 
						|
                        if (_socketHelper.OpenStatus)
 | 
						|
                        {
 | 
						|
                            _socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
 | 
						|
                            if (_socketHelper.OpenStatus)
 | 
						|
                            {
 | 
						|
                                next();
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                _socketHelper.IsMultiThread = false;
 | 
						|
                                _socketHelper.dateTime = DateTime.Now;
 | 
						|
                                Status = 0;
 | 
						|
                                stop();
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                        else
 | 
						|
                        {
 | 
						|
                            _socketHelper.IsMultiThread = false;
 | 
						|
                            _socketHelper.dateTime = DateTime.Now;
 | 
						|
                            Status = 0;
 | 
						|
                            stop();
 | 
						|
                        }
 | 
						|
                        iException = 0;
 | 
						|
                    }
 | 
						|
                    catch (Exception ex)
 | 
						|
                    {
 | 
						|
                        iException++;
 | 
						|
                        if (iException >= 3)
 | 
						|
                        {
 | 
						|
                            _socketHelper.OpenStatus = false;
 | 
						|
                        }
 | 
						|
                        AlertMsg alertMsg = new AlertMsg
 | 
						|
                        {
 | 
						|
                            Message = $"网口连接异常,正在重试{ex.Message}",
 | 
						|
                            Type = MsgType.ERROR,
 | 
						|
                        };
 | 
						|
                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
						|
                        logger.Info($"网口连接异常,正在重试{ex.Message}");
 | 
						|
                        next();
 | 
						|
                    }
 | 
						|
                });
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private bool _isFinishClick = false;
 | 
						|
 | 
						|
        public bool IsFinishClick { get => _isFinishClick; set => SetProperty(ref _isFinishClick, value); }
 | 
						|
        // 完成按钮
 | 
						|
        public DelegateCommand FinishCommand
 | 
						|
        {
 | 
						|
            get => new DelegateCommand(() =>
 | 
						|
            {
 | 
						|
                try
 | 
						|
                {
 | 
						|
 | 
						|
 | 
						|
                    List<ChannelStock> saveChannelStock = _ChannelStocks.Where(cs => cs.TakeQuantity > 0).ToList();
 | 
						|
                    if (saveChannelStock == null || saveChannelStock.Count <= 0)
 | 
						|
                    {
 | 
						|
                        AlertMsg alertMsg = new AlertMsg
 | 
						|
                        {
 | 
						|
                            Message = "请填写要交换药品的交换数量",
 | 
						|
                            Type = MsgType.ERROR,
 | 
						|
                        };
 | 
						|
                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                    int sumQuantity = saveChannelStock.Sum(cs => cs.TakeQuantity);
 | 
						|
                    if (sumQuantity > _ChannelStock.Quantity)
 | 
						|
                    {
 | 
						|
                        AlertMsg alertMsg = new AlertMsg
 | 
						|
                        {
 | 
						|
                            Message = "交换总数不能大于库存",
 | 
						|
                            Type = MsgType.ERROR,
 | 
						|
                        };
 | 
						|
                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
 | 
						|
                    IsFinishClick = true;
 | 
						|
                    var f = SqlSugarHelper.Db.UseTran(() =>
 | 
						|
                    {
 | 
						|
                        for (int i = 0; i < saveChannelStock.Count; i++)
 | 
						|
                        {
 | 
						|
                            ChannelStock currentChannelStock = saveChannelStock[i];
 | 
						|
                            if (currentChannelStock.Quantity < currentChannelStock.TakeQuantity)
 | 
						|
                            {
 | 
						|
                                AlertMsg alertMsg = new AlertMsg
 | 
						|
                                {
 | 
						|
                                    Message = $"药品{currentChannelStock.DrugInfo.DrugName}交换数量不能大于库存",
 | 
						|
                                    Type = MsgType.ERROR,
 | 
						|
                                };
 | 
						|
                                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
						|
                                return false;
 | 
						|
                            }
 | 
						|
 | 
						|
                            string csId = Guid.NewGuid().ToString();
 | 
						|
                            //查询【出药】的药箱中是否有该批次药品
 | 
						|
                            ChannelStock ReplaceChannelStockList = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
						|
                                .Where(cs => cs.MachineId.Equals(_ChannelStock.MachineId))
 | 
						|
                                .Where(cs => cs.DrawerNo == _ChannelStock.DrawerNo)
 | 
						|
                                .Where(cs => cs.DrugId.Equals(currentChannelStock.DrugId))
 | 
						|
                                .Where(cs => cs.ManuNo.Equals(currentChannelStock.ManuNo))
 | 
						|
                                .First();
 | 
						|
                            //修改已替换的药品批次数量(现库存数-已替换总数)
 | 
						|
                            if (_ChannelStock.Quantity > 0)
 | 
						|
                            {
 | 
						|
                                _ChannelStock.Quantity = _ChannelStock.Quantity - sumQuantity;
 | 
						|
                                SqlSugarHelper.Db.Updateable(_ChannelStock).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
 | 
						|
                            }
 | 
						|
                            if (ReplaceChannelStockList != null)
 | 
						|
                            {
 | 
						|
                                //有该批次药品则更新
 | 
						|
                                //csId = ReplaceChannelStockList.Id;
 | 
						|
                                ReplaceChannelStockList.Quantity = ReplaceChannelStockList.Quantity + currentChannelStock.TakeQuantity;
 | 
						|
                                SqlSugarHelper.Db.Updateable(ReplaceChannelStockList).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
 | 
						|
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                //没有该批次药品则插入
 | 
						|
                                SqlSugarHelper.Db.Insertable(new ChannelStock()
 | 
						|
                                {
 | 
						|
                                    MachineId = _ChannelStock.MachineId,
 | 
						|
                                    DrawerNo = _ChannelStock.DrawerNo,
 | 
						|
                                    DrugId = _ChannelStock.DrugId,
 | 
						|
                                    ManuNo = currentChannelStock.ManuNo,
 | 
						|
                                    EffDate = currentChannelStock.EffDate,
 | 
						|
                                    Quantity = currentChannelStock.TakeQuantity,
 | 
						|
                                    DrawerType = 1,
 | 
						|
                                    Chnguid = _ChannelStock.Chnguid,
 | 
						|
                                    Id = csId,
 | 
						|
                                    BaseQuantity= _ChannelStock.BaseQuantity
 | 
						|
                                }).ExecuteCommand();
 | 
						|
                            }
 | 
						|
                            string csToId = Guid.NewGuid().ToString();
 | 
						|
                            // 保存数据 替换药记录
 | 
						|
                            SqlSugarHelper.Db.Insertable(new MoveChannelStock()
 | 
						|
                            {
 | 
						|
                                MachineId = _ChannelStock.MachineId,
 | 
						|
                                FromDrawer = _ChannelStock.DrawerNo,
 | 
						|
                                ToDrawer = currentChannelStock.DrawerNo,
 | 
						|
                                DrugId = _ChannelStock.DrugId,
 | 
						|
                                FromManuNo = _ChannelStock.ManuNo,
 | 
						|
                                ToManuNo = currentChannelStock.ManuNo,
 | 
						|
                                Operator = HomeWindowViewModel.Operator?.Id,
 | 
						|
                                Reviewer = HomeWindowViewModel.Reviewer?.Id,
 | 
						|
                                Quantity = currentChannelStock.TakeQuantity,
 | 
						|
                                Type = 69,
 | 
						|
                            }).ExecuteCommand();
 | 
						|
 | 
						|
                            //查询【入药】的药箱中是否有该批次药品
 | 
						|
                            ChannelStock Replace2ChannelStockList = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
						|
                               .Where(cs => cs.MachineId.Equals(_ChannelStock.MachineId))
 | 
						|
                               .Where(cs => cs.DrawerNo == currentChannelStock.DrawerNo)
 | 
						|
                               .Where(cs => cs.DrugId.Equals(_ChannelStock.DrugId))
 | 
						|
                               .Where(cs => cs.ManuNo.Equals(_ChannelStock.ManuNo))
 | 
						|
                               .First();
 | 
						|
                            //修改替换的药品批次数量(现库存数-已替换总数)
 | 
						|
                            currentChannelStock.Quantity = currentChannelStock.Quantity - currentChannelStock.TakeQuantity;
 | 
						|
                            SqlSugarHelper.Db.Updateable(currentChannelStock).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
 | 
						|
 | 
						|
                            if (Replace2ChannelStockList!=null)
 | 
						|
                            {
 | 
						|
                                //有该批次药品则更新库存
 | 
						|
                                Replace2ChannelStockList.Quantity = Replace2ChannelStockList.Quantity + currentChannelStock.TakeQuantity;
 | 
						|
                                SqlSugarHelper.Db.Updateable(Replace2ChannelStockList).UpdateColumns(it => new { it.Quantity }).ExecuteCommand();
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                //没有该批次药品则插入
 | 
						|
                                SqlSugarHelper.Db.Insertable(new ChannelStock()
 | 
						|
                                {
 | 
						|
                                    MachineId = _ChannelStock.MachineId,
 | 
						|
                                    DrawerNo = currentChannelStock.DrawerNo,
 | 
						|
                                    DrugId = _ChannelStock.DrugId,
 | 
						|
                                    ManuNo = _ChannelStock.ManuNo,
 | 
						|
                                    Quantity = currentChannelStock.TakeQuantity,
 | 
						|
                                    DrawerType = 1,
 | 
						|
                                    Chnguid = currentChannelStock.Chnguid,
 | 
						|
                                    Id = csToId,
 | 
						|
                                    BaseQuantity= currentChannelStock.BaseQuantity
 | 
						|
                                }).ExecuteCommand();
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                        return true;
 | 
						|
                    });
 | 
						|
                    if (f.Data)
 | 
						|
                    {
 | 
						|
                        AlertMsg alertMsg = new AlertMsg
 | 
						|
                        {
 | 
						|
                            Message = "操作完成,库存已更新",
 | 
						|
                            Type = MsgType.SUCCESS,
 | 
						|
                        };
 | 
						|
                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
						|
                    }
 | 
						|
                    if (!f.IsSuccess)
 | 
						|
                    {
 | 
						|
                        AlertMsg alertMsg = new AlertMsg
 | 
						|
                        {
 | 
						|
                            Message = "库存更新失败!",
 | 
						|
                            Type = MsgType.ERROR,
 | 
						|
                        };
 | 
						|
                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
						|
                    }
 | 
						|
                    Status = 0;
 | 
						|
                    IsFinishClick = false;
 | 
						|
                    RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
						|
                }
 | 
						|
                catch (Exception ex)
 | 
						|
                {
 | 
						|
                    AlertMsg alertMsg = new AlertMsg
 | 
						|
                    {
 | 
						|
                        Message = "替换药品异常",
 | 
						|
                        Type = MsgType.ERROR,
 | 
						|
                    };
 | 
						|
                    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
						|
                }
 | 
						|
            }, () => !IsFinishClick);
 | 
						|
        }
 | 
						|
 | 
						|
        public long CurrentTimeMillis()
 | 
						|
        {
 | 
						|
            return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
 | 
						|
        }
 | 
						|
 | 
						|
        // 取消按钮
 | 
						|
        public DelegateCommand CancleCommand
 | 
						|
        {
 | 
						|
            get => new DelegateCommand(() =>
 | 
						|
            {
 | 
						|
                IsFinishClick = false;
 | 
						|
                Status = 0;
 | 
						|
                // 关闭当前窗口
 | 
						|
                RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        public DelegateCommand BtnCloseCommand
 | 
						|
        {
 | 
						|
            get => new DelegateCommand(() =>
 | 
						|
            {
 | 
						|
                // 关闭当前窗口
 | 
						|
                RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
						|
            }, () => Status == 0).ObservesProperty(() => Status);
 | 
						|
        }
 | 
						|
 | 
						|
        public bool KeepAlive => false;
 | 
						|
    }
 | 
						|
}
 |