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(); } /// /// 参数列表 /// [ObservableProperty] public List sysParams = new List(); /// /// 选中的参数行 /// [ObservableProperty] public sys_parm selectItem = new sys_parm(); List allSysParams = new List(); public void InitParamData() { allSysParams = sysParamBll.QuerySysParm()?.OrderBy(p => p.plc_type).ToList(); OnFilterTypeChange(); } /// /// 参数类型 /// [ObservableProperty] public List dataTypes = new List { "通用", "耗材", "液体" }; /// /// 过滤类型 /// 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(); } /// /// 单位列表 /// [ObservableProperty] public List units = new List(); public void BangdingUnit() { Units = SystemConst.dictDatas.Where(p => p.class_id == 4).ToList(); //cmbUnit.BindingData(units, "data_value", "id"); //cmbUnit.SelectedIndex = 0; } /// /// 参数值绑定 /// [ObservableProperty] public sys_parm sysParm = new sys_parm(); /// /// 保存参数 /// /// 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; } /// /// 删除参数 /// /// 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; } /// /// 新增参数 /// /// /// [RelayCommand] public void BtnAddParamClick() { SysParm = new sys_parm(); NewStandParmWindow frm = new NewStandParmWindow(this); frm.ShowDialog(); } /// /// 编辑参数 /// [RelayCommand] public void BtnEditClick() { SysParm = SelectItem; NewStandParmWindow frm = new NewStandParmWindow(this); frm.ShowDialog(); } /// /// 删除参数 /// /// /// [RelayCommand] private void BtnDelParamClick() { DelParam(); } } }