Files
wcs/货架标准上位机/ViewModels/HomeViewModel.cs
陶坤 e3d3726cbe 1
2024-05-15 18:49:11 +08:00

110 lines
3.5 KiB
C#

using HandyControl.Controls;
using LiveCharts;
using Ping9719.WpfEx;
using Ping9719.WpfEx.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Input;
using HandyControl.Tools.Extension;
using .Views.Controls;
using .Api;
using WCS.Model;
namespace .ViewModel
{
public class HomeViewModel : BindableBase
{
WarnInfoContainer WarnInfo = new WarnInfoContainer();//警告、错误等信息
#region
private string textErr;
/// <summary>
/// 错误文本
/// </summary>
public string TextErr { get => textErr; set { SetProperty(ref textErr, value); } }
public ICommand ClearTextInfoCommand { get => new DelegateCommand(ClearTextInfo); }
/// <summary>
/// 清除信息文本
/// </summary>
public void ClearTextInfo()
{
TextBoxLog.ClearLog();
}
public ICommand ClearTextErrCommand { get => new DelegateCommand(ClearTextErr); }
/// <summary>
/// 清除全部错误文本
/// </summary>
public void ClearTextErr()
{
WarnInfo.RemoveAll(WarnInfoType.AlwayWarn);
}
public ICommand AddUserControlCommand { get => new DelegateCommand(AddUserControl); }
public WrapPanel wrapPanel;
public async void AddUserControl()
{
//var dia = Dialog.Show(new TextDialog());
//try
//{
// var body = new GetShelfStatusRequest()
// {
// UserName = "xxx",
// DeviceType = "WCS前端",
// GroupNames = LocalFile.Config.GroupName,
// };
// var Result = await ApiHelp.Post<GetShelfStatusResponse>([LocalFile.Config.ApiIpHost, "home/getShelfStatus"], body);
// if (Result != null && Result.Data?.Count > 0)
// {
// wrapPanel.Children.Clear();
// Result.Data.ForEach(t =>
// {
// var shelf = new ShelfStatusControl(t.ShelfCode, t.CurentMode, t.GroupName);
// wrapPanel.Children.Add(shelf);
// });
// }
//}
//catch (Exception ex)
//{
//}
//finally
//{
// //dia.Close();
//}
}
#endregion
#region
/// <summary>
/// 页面第一次加载时执行的任务
/// </summary>
public void LoadTask()
{
//注册警告事件
WarnInfo.WarnInfoChanged += (all, add, rem) =>
{
TextErr = string.Join(Environment.NewLine, all.OrderBy(o => (o.WarnType, o.Source, o.Text)));
if (add.Any())
Logs.Write(add.Select(o => o.ToString()), LogsType.Warning);
if (rem.Any())
Logs.Write(rem.Select(o => o.ToString()), LogsType.Warning);
//警告信息保存到数据库
if (WarnInfoDb.IsEnabled)
{
WarnInfoDb.db.Insertable(WarnInfoItemDb.GetList(add)).ExecuteCommand();
WarnInfoDb.db.Updateable(WarnInfoItemDb.GetList(rem)).ExecuteCommand();
}
};
}
#endregion
}
}