using DM_Weight.Models; using DM_Weight.msg; using DM_Weight.Report; 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.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media; namespace DM_Weight.ViewModels { public class AccountWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime { private DateTime? _startDate = DateTime.Now; public DateTime? StartDate { get => _startDate; set { SetProperty(ref _startDate, value); } } private DateTime? _endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59); public DateTime? EndDate { get => _endDate; set { SetProperty(ref _endDate, value); } } private string _name; public string Name { get => _name; set { SetProperty(ref _name, value); } } private static readonly DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); /// /// 麻醉医师姓名 /// private List _UserInfos; public List UserInfos { get => _UserInfos; set { SetProperty(ref _UserInfos, value); } } private UserList _User; public UserList User { get => _User; set { SetProperty(ref _User, value); } } private static List boxDefine = new List { "1号手术间", "2号手术间", "3号手术间", "4号手术间", "5号手术间", "6号手术间", "7号手术间", "8号手术间", "9号手术间", "10号手术间", "11号手术间", "12号手术间", "13号手术间", "14号手术间", "15号手术间", "16号手术间", "17号手术间", "18号手术间" }; private List _Boxs = boxDefine; public List Boxs { get => _Boxs; set { SetProperty(ref _Boxs, value); } } private string _Box; public string Box { get => _Box; set { SetProperty(ref _Box, value); } } IDialogService _dialogService; public AccountWindowViewModel(IDialogService dialogService) { _dialogService = dialogService; } public long CurrentTimeMillis() { return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds; } public void OnNavigatedTo(NavigationContext navigationContext) { //绑定用户信息 UserInfos = SqlSugarHelper.Db.Queryable() .Where(ul => ul.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5")).ToList(); } public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { } /// /// 导出账册 /// public DelegateCommand DownloadAccountBook { get => new DelegateCommand(() => { GridReportUtil.UserAccount(StartDate, EndDate, User == null ? "" : User.Nickname, Box); }); } public DelegateCommand SelectTimeAction { get => new DelegateCommand(async (s) => { // 此处延时1毫秒,等待页面渲染 await Task.Delay(TimeSpan.FromMilliseconds(1)); DialogParameters dialogParameters = new DialogParameters(); dialogParameters.Add("DateTime", StartDate); dialogParameters.Add("Type", s); DialogServiceExtensions.ShowDialogHost(_dialogService, "DatetimeDialog", dialogParameters, DoDialogResult, "RootDialog"); }); } private void DoDialogResult(IDialogResult dialogResult) { // 委托 被动执行 被子窗口执行 // dialogResult 第一方面可以拿到任意参数 第二方面 可判断关闭状态 if (dialogResult.Result == ButtonResult.OK) { if (dialogResult.Parameters.GetValue("Type").Equals("1")) { StartDate = dialogResult.Parameters.GetValue("DateTime"); } else { EndDate = dialogResult.Parameters.GetValue("DateTime"); } } //MessageBox.Show("返回值:" + dialogResult.Result.ToString()); } public bool KeepAlive => true; } }