259 lines
6.3 KiB
C#
259 lines
6.3 KiB
C#
using CommunityToolkit.Mvvm.ComponentModel;
|
||
using CommunityToolkit.Mvvm.Input;
|
||
using Models.Const;
|
||
using Models.Models;
|
||
using SamplePre.ProcessBll.BLL;
|
||
using SamplePre.UIWpf.ParamManager.chirld;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Data;
|
||
using System.Linq;
|
||
using System.Runtime.CompilerServices;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using System.Windows;
|
||
using System.Windows.Controls;
|
||
|
||
namespace SamplePreSystem.UI.ViewModel.SopManager
|
||
{
|
||
public partial class ParamManagerViewModel : ObservableObject
|
||
{
|
||
SysParamBll sysParamBll = new SysParamBll();
|
||
|
||
|
||
|
||
public ParamManagerViewModel()
|
||
{
|
||
//初始化标准
|
||
InitParamData();
|
||
|
||
BangdingUnit();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 参数列表
|
||
/// </summary>
|
||
[ObservableProperty]
|
||
public List<sys_parm> sysParams = new List<sys_parm>();
|
||
|
||
/// <summary>
|
||
/// 选中的参数行
|
||
/// </summary>
|
||
[ObservableProperty]
|
||
public sys_parm selectItem = new sys_parm();
|
||
|
||
List<sys_parm> allSysParams = new List<sys_parm>();
|
||
|
||
public void InitParamData()
|
||
{
|
||
allSysParams = sysParamBll.QuerySysParm()?.OrderBy(p => p.plc_type).ToList();
|
||
|
||
|
||
OnFilterTypeChange();
|
||
}
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 参数类型
|
||
/// </summary>
|
||
[ObservableProperty]
|
||
public List<string> dataTypes = new List<string> { "通用", "耗材", "液体" };
|
||
|
||
/// <summary>
|
||
/// 过滤类型
|
||
/// </summary>
|
||
private string filterType = "通用";
|
||
|
||
public string FilterType
|
||
{
|
||
get { return filterType; }
|
||
set {
|
||
|
||
SetProperty(ref filterType, value);
|
||
|
||
OnFilterTypeChange();
|
||
}
|
||
}
|
||
|
||
|
||
|
||
public void OnFilterTypeChange()
|
||
{
|
||
if (string.IsNullOrEmpty(FilterType))
|
||
{
|
||
SysParams = allSysParams;
|
||
return;
|
||
}
|
||
|
||
SysParams = allSysParams.Where(p => p.param_type == FilterType).ToList();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 单位列表
|
||
/// </summary>
|
||
[ObservableProperty]
|
||
public List<sys_dict> units = new List<sys_dict>();
|
||
|
||
|
||
public void BangdingUnit()
|
||
{
|
||
Units = SystemConst.dictDatas.Where(p => p.class_id == 4).ToList();
|
||
|
||
//cmbUnit.BindingData<sys_dict>(units, "data_value", "id");
|
||
//cmbUnit.SelectedIndex = 0;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 参数值绑定
|
||
/// </summary>
|
||
[ObservableProperty]
|
||
public sys_parm sysParm = new sys_parm();
|
||
|
||
|
||
/// <summary>
|
||
/// 保存参数
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public bool SaveParam()
|
||
{
|
||
if (string.IsNullOrEmpty(SysParm.title) || string.IsNullOrEmpty(SysParm.data_value))
|
||
{
|
||
MessageBox.Show("内容不能为空");
|
||
return false;
|
||
}
|
||
|
||
if (string.IsNullOrEmpty(SysParm.param_type))
|
||
{
|
||
MessageBox.Show("参数类型不能为空");
|
||
return false;
|
||
}
|
||
|
||
if (SysParm.data_type == "数值")
|
||
{
|
||
string val = SysParm.data_value;
|
||
if (float.TryParse(val, out _) == false)
|
||
{
|
||
MessageBox.Show("参数值格式不正确,请重新修改!");
|
||
SysParm.data_value = "0";
|
||
return false;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
if (SysParm != null && !string.IsNullOrEmpty(SysParm.id))
|
||
{
|
||
//修改
|
||
sysParamBll.UpdateSysParm(SysParm);
|
||
}
|
||
else
|
||
{
|
||
//判断plc编码是否重复
|
||
if (sysParamBll.IsExtisPlCcode(SysParm.plc_type))
|
||
{
|
||
MessageBox.Show("存在相同plc编码,不能保存!");
|
||
return false;
|
||
}
|
||
//新增
|
||
SysParm.id = Guid.NewGuid().ToString();
|
||
|
||
sysParamBll.SaveSysParm(SysParm);
|
||
}
|
||
|
||
//刷新参数列表
|
||
InitParamData();
|
||
OnFilterTypeChange();
|
||
|
||
return true;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 删除参数
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public bool DelParam()
|
||
{
|
||
sys_parm parm = SelectItem;
|
||
string id = parm.id;
|
||
string title = parm.title;
|
||
|
||
|
||
if (MessageBox.Show($"确定删除:{title}", "提示",MessageBoxButton.OKCancel) == MessageBoxResult.OK)
|
||
{
|
||
//判断该参数是否已经被使用
|
||
if (IsDelete(id) == false)
|
||
{
|
||
return false;
|
||
}
|
||
|
||
|
||
sysParamBll.DelSysParm(id);
|
||
|
||
//刷新参数列表
|
||
InitParamData();
|
||
OnFilterTypeChange();
|
||
|
||
|
||
}
|
||
|
||
return true;
|
||
}
|
||
private bool IsDelete(string parmId)
|
||
{
|
||
bool isExit = sysParamBll.IsExtisActionParam(parmId);
|
||
if (isExit)
|
||
{
|
||
MessageBox.Show("该参数已经被使用,不能删除!");
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 新增参数
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
[RelayCommand]
|
||
public void BtnAddParamClick()
|
||
{
|
||
SysParm = new sys_parm();
|
||
NewStandParmWindow frm = new NewStandParmWindow(this);
|
||
frm.ShowDialog();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 编辑参数
|
||
/// </summary>
|
||
[RelayCommand]
|
||
public void BtnEditClick()
|
||
{
|
||
SysParm = SelectItem;
|
||
|
||
NewStandParmWindow frm = new NewStandParmWindow(this);
|
||
frm.ShowDialog();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删除参数
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
[RelayCommand]
|
||
private void BtnDelParamClick()
|
||
{
|
||
DelParam();
|
||
}
|
||
|
||
|
||
|
||
|
||
}
|
||
}
|