You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.3 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Win32;
using MiniExcelLibs;
using SlnMesnac.Business;
using SlnMesnac.Model.domain;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2024 WenJY
* CLR4.0.30319.42000
* T14-GEN3-7895
* SlnMesnac.WPF.ViewModel
* 363901e3-4a2d-433c-862a-6ea822f784fb
*
* WenJY
*
* 2024-09-20 10:23:24
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.WPF.ViewModel
{
public partial class HistoryViewModel : ObservableObject
{
private TagScanBusiness tagScanBusiness;
public HistoryViewModel()
{
tagScanBusiness = App.ServiceProvider.GetService<TagScanBusiness>();
}
public string _rfidCode;
public string RfidCode
{
get => _rfidCode;
set => SetProperty(ref _rfidCode, value);
}
public DateTime _beginTime = DateTime.Now;
public DateTime BeginTime
{
get => _beginTime;
set => SetProperty(ref _beginTime, value);
}
public DateTime _endTime = DateTime.Now;
public DateTime EndTime
{
get => _endTime;
set => SetProperty(ref _endTime, value);
}
private ObservableCollection<ScanLogModel> _scanItems = new ObservableCollection<ScanLogModel>();
public ObservableCollection<ScanLogModel> ScanItems
{
get => _scanItems;
set => SetProperty(ref _scanItems, value);
}
[RelayCommand]
private void Query()
{
tagScanBusiness.QuerySacnInfo(_rfidCode, _beginTime, _endTime,out List<ScanLogModel> info);
ScanItems = new ObservableCollection<ScanLogModel>(info);
}
[RelayCommand]
private void Export()
{
try
{
var info = _scanItems;
// 创建 SaveFileDialog 对象
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel文件 (*.xlsx)|*.xlsx|所有文件 (*.*)|*.*";
saveFileDialog.Title = "保存文件";
saveFileDialog.FileName = $"扫描记录{DateTime.Now.Date:yyyy-MM-dd}.xlsx";
if (saveFileDialog.ShowDialog() == true)
{
string filePath = saveFileDialog.FileName;
MiniExcel.SaveAs(filePath, info);
MessageBox.Show($"扫描记录导出成功:{filePath}");
}
}
catch (Exception ex)
{
MessageBox.Show($"扫描记录导出异常:{ex.Message}");
}
}
}
}