Files
SamplePreSystem-CS/SamplePreSystem.UI/ViewModel/SopManager/ParamManagerViewModel.cs
2026-04-30 11:34:41 +08:00

259 lines
6.3 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 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();
}
}
}