添加项目文件。

This commit is contained in:
2024-07-04 17:42:03 +08:00
parent dc72862945
commit 1bd6cd358f
71 changed files with 7218 additions and 0 deletions

View File

@@ -0,0 +1,599 @@
using AutoMapper;
using CapMachine.Core;
using CapMachine.Model;
using CapMachine.Wpf.Models;
using ImTools;
using Prism.Commands;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace CapMachine.Wpf.ViewModels
{
public class DialogChartRtConfigViewModel : DialogViewModel
{
public DialogChartRtConfigViewModel(IFreeSql freeSql, IMapper mapper)
{
this.Title = "曲线编辑";
//加载曲线数据源
ChartSrcDataListViewItems = new ObservableCollection<ChartSrcData>();
ChartSrcDataListViewItems.Add(new ChartSrcData()
{
Index = 1,
Name = "温度",
Selected = true
});
ChartSrcDataListViewItems.Add(new ChartSrcData()
{
Index = 2,
Name = "压力",
Selected = true
});
ChartSrcDataListViewItems.Add(new ChartSrcData()
{
Index = 3,
Name = "湿度",
Selected = false
});
ChartSrcDataListViewItems.Add(new ChartSrcData()
{
Index = 4,
Name = "过冷度",
Selected = false
});
ChartYAxisDataListViewItems = new ObservableCollection<ChartYAxisDto>()
{
new ChartYAxisDto(){
Name="温度",
Max=100,
Min=-50,
Unit="℃",
Index=3,
},
new ChartYAxisDto(){
Name="湿度",
Max=100,
Min=0,
Unit="%",
Index=1,
},
new ChartYAxisDto(){
Name="压力",
Max=100,
Min=-50,
Unit="Mpa",
Index=2,
},
};
FreeSql = freeSql;
this.Mapper = mapper;
RefreshChartSourceData();
RefreshChartSelectedData();
RefreshChartYAxisData();
}
/// <summary>
/// FreeSql
/// </summary>
public IFreeSql FreeSql { get; }
/// <summary>
/// AutoMap映射
/// </summary>
public IMapper Mapper { get; }
/// <summary>
/// 加载数据
/// </summary>
private void RefreshChartSourceData()
{
//var data = FreeSql.Select<ConfigChartSelect>().ToList();
//Mapper.Map<List<ChartSelectDto>>(data);
//ChartSelectDataListViewItems = new ObservableCollection<ChartSelectDto>(Mapper.Map<List<ChartSelectDto>>(data));
}
/// <summary>
/// 加载选择数据
/// </summary>
private void RefreshChartSelectedData()
{
var ChartSelectedData = FreeSql.Select<ConfigChartSelect>().Include(a=>a.ConfigChartYAxis).ToList();
ChartSelectDataListViewItems.Clear();
foreach (var item in ChartSelectedData)
{
ChartSelectDataListViewItems.Add(Mapper.Map<ChartSelectDto>(item));
}
//SelectedChartSelectData = null;
//Mapper.Map<List<ChartSelectDto>>(data);
//ChartSelectDataListViewItems = new ObservableCollection<ChartSelectDto>(Mapper.Map<List<ChartSelectDto>>(data));
}
/// <summary>
/// 加载Y轴数据信息
/// </summary>
private void RefreshChartYAxisData()
{
var ChartYAxisData = FreeSql.Select<ConfigChartYAxis>().ToList();
ChartYAxisDataListViewItems.Clear();
foreach (var item in ChartYAxisData)
{
ChartYAxisDataListViewItems.Add(Mapper.Map<ChartYAxisDto>(item));
}
}
#region
private DelegateCommand<object> _SelectionChartSourceCmd;
/// <summary>
/// 选中Chart数据源命令
/// </summary>
public DelegateCommand<object> SelectionChartSourceCmd
{
set
{
_SelectionChartSourceCmd = value;
}
get
{
if (_SelectionChartSourceCmd == null)
{
_SelectionChartSourceCmd = new DelegateCommand<object>((str) => SelectionChartSourceCmdMethod(str));
}
return _SelectionChartSourceCmd;
}
}
/// <summary>
/// 执行方法
/// </summary>
/// <param name="str"></param>
/// <exception cref="NotImplementedException"></exception>
private void SelectionChartSourceCmdMethod(object par)
{
var data = par as ChartSrcData;
//如果不是ProgramSeg则退出因为刷新数据源的时候会触发这个选择器
if (data == null) return;
SelectedChartSrcData = data;
}
private ChartSrcData _SelectedChartSrcData;
/// <summary>
/// 当前选中Chart数据源
/// </summary>
public ChartSrcData SelectedChartSrcData
{
get { return _SelectedChartSrcData; }
set { _SelectedChartSrcData = value; RaisePropertyChanged(); }
}
private ObservableCollection<ChartSrcData> _ChartSrcDataListViewItems;
/// <summary>
/// 数据源控件 数据集合
/// </summary>
public ObservableCollection<ChartSrcData> ChartSrcDataListViewItems
{
get { return _ChartSrcDataListViewItems; }
set { _ChartSrcDataListViewItems = value; RaisePropertyChanged(); }
}
///// <summary>
///// 加载最新的数据
///// </summary>
///// <returns></returns>
//private List<ProgramSeg> RefreshProSeg()
//{
// ChartSrcDataListViewItems.Clear();
// foreach (var item in ListProgramSeg)
// {
// ProSegListViewItems.Add(item);
// }
// return ListProgramSeg;
//}
#endregion
#region
private DelegateCommand<string> _ChartSourceCmd;
/// <summary>
/// Chart数据 匹配操作命令
/// </summary>
public DelegateCommand<string> ChartSourceCmd
{
set
{
_ChartSourceCmd = value;
}
get
{
if (_ChartSourceCmd == null)
{
_ChartSourceCmd = new DelegateCommand<string>((str) => ChartSourceCmdMethod(str));
}
return _ChartSourceCmd;
}
}
/// <summary>
/// 执行方法
/// </summary>
/// <param name="str"></param>
/// <exception cref="NotImplementedException"></exception>
private void ChartSourceCmdMethod(string par)
{
if (par == "Selected")//选中的操作
{
if (SelectedChartSrcData == null)
{
MessageBox.Show("请选择后再操作");
return;
}
if (ChartSelectDataListViewItems.Where(a => a.Name == SelectedChartSrcData.Name).Count() > 0)
{
MessageBox.Show("已经选择这条曲线");
return;
}
//数据库增加
FreeSql.Insert<ConfigChartSelect>(new ConfigChartSelect()
{
Name = SelectedChartSrcData.Name,
Category = "Default",
Index = 1,
ConfigChartYAxis = new ConfigChartYAxis() { Name = "无单位", Unit = "无" },
}).ExecuteAffrows();
//刷新图表
RefreshChartSelectedData();
//更改数据源状态
ChartSrcDataListViewItems.FindFirst(a => a.Name == SelectedChartSrcData.Name).Selected = true;
}
else//删除的操作
{
if (SelectedChartSelectData != null)
{
//数据库删除
FreeSql.Delete<ConfigChartSelect>()
.Where(a => a.Name == SelectedChartSelectData.Name)
.ExecuteAffrows();
//刷新图表
RefreshChartSelectedData();
//ChartSelectDataListViewItems.Remove(SelectedChartSelectData);
//更改状态
ChartSrcDataListViewItems.FindFirst(a => a.Name == SelectedChartSelectData.Name).Selected = false;
}
else
{
MessageBox.Show("请选择后再操作");
}
}
}
/// <summary>
/// 获取默认的Y轴设置
/// </summary>
/// <returns></returns>
private ChartYAxisDto GetDefaultYAxis()
{
return new ChartYAxisDto() { Name = "温度", Unit = "℃" };
}
private DelegateCommand<string> _ChartYAxisSelectCmd;
/// <summary>
/// Chart 标尺数据的操作命令
/// </summary>
public DelegateCommand<string> ChartYAxisSelectCmd
{
set
{
_ChartYAxisSelectCmd = value;
}
get
{
if (_ChartYAxisSelectCmd == null)
{
_ChartYAxisSelectCmd = new DelegateCommand<string>((str) => ChartYAxisSelectCmdMethod(str));
}
return _ChartYAxisSelectCmd;
}
}
/// <summary>
/// 执行方法
/// </summary>
/// <param name="str"></param>
/// <exception cref="NotImplementedException"></exception>
private void ChartYAxisSelectCmdMethod(string par)
{
if (par == "Selected")//选中的操作
{
if (SelectedChartYAxisData == null)
{
MessageBox.Show("请选择后再操作");
return;
}
if (SelectedChartSelectData == null)
{
MessageBox.Show("请选择中间的【已选择曲线】后再操作");
return;
}
//数据库保存
FreeSql.Update<ConfigChartSelect>()
.Where(a => a.Id == SelectedChartSelectData.Id)
.Set(a=>a.ConfigChartYAxisId, SelectedChartYAxisData.Id)
.ExecuteAffrows();
//刷新图表
RefreshChartSelectedData();
//SelectedChartSelectData.YAxis = SelectedChartYAxisData;
}
}
#endregion
#region
private DelegateCommand<object> _SelectedChartConfigCmd;
/// <summary>
/// 选中Chart数据源命令
/// </summary>
public DelegateCommand<object> SelectedChartConfigCmd
{
set
{
_SelectedChartConfigCmd = value;
}
get
{
if (_SelectedChartConfigCmd == null)
{
_SelectedChartConfigCmd = new DelegateCommand<object>((str) => SelectedChartConfigCmdMethod(str));
}
return _SelectedChartConfigCmd;
}
}
/// <summary>
/// 执行方法
/// </summary>
/// <param name="str"></param>
/// <exception cref="NotImplementedException"></exception>
private void SelectedChartConfigCmdMethod(object par)
{
var data = par as ChartSelectDto;
//如果不是ProgramSeg则退出因为刷新数据源的时候会触发这个选择器
if (data == null) return;
SelectedChartSelectData = data;
}
private ChartSelectDto _SelectedChartSelectData;
/// <summary>
/// 当前选中Chart数据源
/// </summary>
public ChartSelectDto SelectedChartSelectData
{
get { return _SelectedChartSelectData; }
set { _SelectedChartSelectData = value; RaisePropertyChanged(); }
}
private ObservableCollection<ChartSelectDto> _ChartSelectDataListViewItems = new ObservableCollection<ChartSelectDto>();
/// <summary>
/// 数据源控件 数据集合
/// </summary>
public ObservableCollection<ChartSelectDto> ChartSelectDataListViewItems
{
get { return _ChartSelectDataListViewItems; }
set { _ChartSelectDataListViewItems = value; RaisePropertyChanged(); }
}
///// <summary>
///// 加载最新的数据
///// </summary>
///// <returns></returns>
//private List<ProgramSeg> RefreshProSeg()
//{
// ChartSrcDataListViewItems.Clear();
// foreach (var item in ListProgramSeg)
// {
// ProSegListViewItems.Add(item);
// }
// return ListProgramSeg;
//}
#endregion
#region Y轴设置
private DelegateCommand<object> _ChartYAxisDataConfigCmd;
/// <summary>
/// 选中Chart数据源命令
/// </summary>
public DelegateCommand<object> ChartYAxisDataConfigCmd
{
set
{
_ChartYAxisDataConfigCmd = value;
}
get
{
if (_ChartYAxisDataConfigCmd == null)
{
_ChartYAxisDataConfigCmd = new DelegateCommand<object>((str) => ChartYAxisDataConfigCmdMethod(str));
}
return _ChartYAxisDataConfigCmd;
}
}
/// <summary>
/// 执行方法
/// </summary>
/// <param name="str"></param>
/// <exception cref="NotImplementedException"></exception>
private void ChartYAxisDataConfigCmdMethod(object par)
{
var data = par as ChartYAxisDto;
//如果不是ProgramSeg则退出因为刷新数据源的时候会触发这个选择器
if (data == null) return;
SelectedChartYAxisData = data;
}
private ChartYAxisDto _SelectedChartYAxisData;
/// <summary>
/// 当前选中Chart数据源
/// </summary>
public ChartYAxisDto SelectedChartYAxisData
{
get { return _SelectedChartYAxisData; }
set { _SelectedChartYAxisData = value; RaisePropertyChanged(); }
}
private ObservableCollection<ChartYAxisDto> _ChartYAxisDataListViewItems = new ObservableCollection<ChartYAxisDto>();
/// <summary>
/// 数据源控件 数据集合
/// </summary>
public ObservableCollection<ChartYAxisDto> ChartYAxisDataListViewItems
{
get { return _ChartYAxisDataListViewItems; }
set { _ChartYAxisDataListViewItems = value; RaisePropertyChanged(); }
}
///// <summary>
///// 加载最新的数据
///// </summary>
///// <returns></returns>
//private List<ProgramSeg> RefreshProSeg()
//{
// ChartSrcDataListViewItems.Clear();
// foreach (var item in ListProgramSeg)
// {
// ProSegListViewItems.Add(item);
// }
// return ListProgramSeg;
//}
#endregion
private string name;
/// <summary>
/// 名称
/// </summary>
public string Name
{
get { return name; }
set { name = value; RaisePropertyChanged(); }
}
private DelegateCommand saveCmd;
/// <summary>
/// 保存命令
/// </summary>
public DelegateCommand SaveCmd
{
set
{
saveCmd = value;
}
get
{
if (saveCmd == null)
{
saveCmd = new DelegateCommand(() => SaveCmdMethod());
}
return saveCmd;
}
}
/// <summary>
/// 保存命令方法
/// </summary>
/// <exception cref="NotImplementedException"></exception>
private void SaveCmdMethod()
{
DialogParameters pars = new DialogParameters
{
{ "Name", Name }
};
RaiseRequestClose(new DialogResult(ButtonResult.OK, pars));
}
private DelegateCommand cancelCmd;
/// <summary>
/// 保存命令
/// </summary>
public DelegateCommand CancelCmd
{
set
{
cancelCmd = value;
}
get
{
if (cancelCmd == null)
{
cancelCmd = new DelegateCommand(() => CancelCmdMethod());
}
return cancelCmd;
}
}
/// <summary>
/// 取消命令方法
/// </summary>
/// <exception cref="NotImplementedException"></exception>
private void CancelCmdMethod()
{
RaiseRequestClose(new DialogResult(ButtonResult.Cancel));
}
/// <summary>
/// 窗口打开时的传递的参数
/// </summary>
/// <param name="parameters"></param>
public override void OnDialogOpened(IDialogParameters parameters)
{
var info = parameters.GetValue<string>("par");
}
}
}