XiangTanReport/DM_Weight/ViewModels/AccountWindowViewModel.cs

148 lines
4.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
/// <summary>
/// 麻醉医师姓名
/// </summary>
private List<UserList> _UserInfos;
public List<UserList> UserInfos
{
get => _UserInfos;
set { SetProperty(ref _UserInfos, value); }
}
private UserList _User;
public UserList User
{
get => _User;
set { SetProperty(ref _User, value); }
}
private static List<string> boxDefine =
new List<string> { "1号手术间", "2号手术间", "3号手术间", "4号手术间", "5号手术间", "6号手术间", "7号手术间", "8号手术间", "9号手术间", "10号手术间", "11号手术间", "12号手术间", "13号手术间", "14号手术间", "15号手术间", "16号手术间", "17号手术间", "18号手术间" };
private List<string> _Boxs = boxDefine;
public List<string> 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<UserList>()
.Where(ul => ul.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM5")).ToList();
}
public bool IsNavigationTarget(NavigationContext navigationContext)
{
return true;
}
public void OnNavigatedFrom(NavigationContext navigationContext)
{
}
/// <summary>
/// 导出账册
/// </summary>
public DelegateCommand DownloadAccountBook
{
get => new DelegateCommand(() =>
{
GridReportUtil.UserAccount(StartDate, EndDate, User == null ? "" : User.Nickname, Box);
});
}
public DelegateCommand<string> SelectTimeAction
{
get => new DelegateCommand<string>(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<string?>("Type").Equals("1"))
{
StartDate = dialogResult.Parameters.GetValue<DateTime?>("DateTime");
}
else
{
EndDate = dialogResult.Parameters.GetValue<DateTime?>("DateTime");
}
}
//MessageBox.Show("返回值:" + dialogResult.Result.ToString());
}
public bool KeepAlive => true;
}
}