using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Windows; using System.Windows.Input; using Prism.Commands; using Prism.Services.Dialogs; using SWS.CAD.ViewModels.myViewModelBase; using SWS.Commons; using SWS.Model; using SWS.Service; using Unity; using MessageBox = System.Windows.Forms.MessageBox; namespace SWS.CAD.ViewModels { public class CheckInApproveViewModel : DialogBase { #region 按钮命令 /// /// 已审核 /// public ICommand Commad_Approve { get; } /// /// 未审核 /// public ICommand Commad_NotApprove { get; } /// /// 全选 /// public ICommand Commad_CheckedAll { get; } /// /// 清空选择 /// public ICommand Commad_ClearChecked { get; } #endregion private ObservableCollection _listData; /// /// 数据源 /// public ObservableCollection listData { get { return _listData; } set { _listData = value; RaisePropertyChanged(nameof(listData)); } } private List _listAllData = new List(); /// /// 所有审核数据 ec_drawing_syn /// public List listAllData { get { return _listAllData; } set { _listAllData = value; } } Visibility visibility = Visibility.Visible; /// /// 是否显示批量审核按钮 /// public Visibility IsShowApprove { get { return visibility; } set { visibility = value; RaisePropertyChanged(nameof(IsShowApprove)); ReadOnly = value == Visibility.Collapsed; } } Boolean _ReadOnly = false; /// /// 是否显示批量审核按钮 /// public Boolean ReadOnly { get { return _ReadOnly; } set { _ReadOnly = value; RaisePropertyChanged(nameof(ReadOnly)); } } NotificationService _notificationService { get; set; } public CheckInApproveViewModel() { title = "检入审核"; _notificationService = GlobalObject.container.Resolve(); Commad_Approve = new DelegateCommand(onApprove); Commad_NotApprove = new DelegateCommand(onNotApprove); Commad_CheckedAll = new DelegateCommand(onCheckedAll); Commad_ClearChecked = new DelegateCommand(onClearChecked); } public string Title => ""; public event Action RequestClose; public override void onWindow_loaded(object para) { GetAllData(); } #region 获取所有数据 /// /// 获取所有数据 /// /// 获取数据后显示数据,0:未审核 ,1:已审核 private async void GetAllData(int approve = 0) { var list = await _notificationService.GetCheckInLogNeedApprove(); listAllData.Clear(); foreach (var item in list) { foreach (var item2 in item) { listAllData.Add(item2); } } if (approve == 0) { onNotApprove(); } else if (approve == 1) { onApprove(); } } #endregion #region 已审核 /// /// 已审核 /// public void onApprove() { var list = listAllData.Where(a => a.ApproveByAdmin == 1); listData = new ObservableCollection(list); IsShowApprove = Visibility.Collapsed; } #endregion #region 未审核 /// /// 未审核 /// public void onNotApprove() { var list = listAllData.Where(a => a.ApproveByAdmin == 0); listData = new ObservableCollection(list); IsShowApprove = Visibility.Visible; } #endregion #region 全选 /// /// 全选 /// public void onCheckedAll() { if (ReadOnly) { return; } foreach (var item in listData) { item.IsSelected = true; } } #endregion #region 清空选择 /// /// 清空选择 /// public void onClearChecked() { if (ReadOnly) { return; } foreach (var item in listData) { item.IsSelected = false; } } #endregion #region 批量审核 public override async void ExecuteOKCommandAsync(object parameter) { var list = listAllData.Where(a => a.IsSelected == true); if (!list.Any()) { MessageBox.Show("请先勾选数据再进行批量审核!"); return; } var listId = list.Select(a => a.DrawingSynID).ToList(); string IDs = string.Join(",", listId); var msg = await _notificationService.ApproveCheckInLog(IDs); if (!string.IsNullOrEmpty(msg)) { MessageBox.Show("审核失败:" + msg); } else { MessageBox.Show("审核成功!"); GetAllData(); } } #endregion #region 关闭 public override void ExecuteCloseCommand(object parameter) { // 关闭窗口 (需要通过 CommandParameter 传入窗口实例) if (parameter is System.Windows.Window window) { window.Close(); } this.Dispose(); } #endregion } }