From b544d5cccd76735e034c8055918a50927b437474 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期二, 10 十一月 2026 08:29:04 +0800
Subject: [PATCH] fix: 维护模式重复进入失败与按钮灰死 + Broker 并发验证用例
---
HMI.ParameterManage/ParameterManage.xaml.cs | 157 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 113 insertions(+), 44 deletions(-)
diff --git a/HMI.ParameterManage/ParameterManage.xaml.cs b/HMI.ParameterManage/ParameterManage.xaml.cs
index 9a9bc3a..23e543f 100644
--- a/HMI.ParameterManage/ParameterManage.xaml.cs
+++ b/HMI.ParameterManage/ParameterManage.xaml.cs
@@ -1,10 +1,16 @@
-锘縰sing System.IO;
+锘縰sing HMI.Base;
+using HMI.Core.Entity;
+using HMI.Core.Manager;
+using HMI.Core.Util;
+using HMI.ParameterManage.Model;
+using HMI.UI.Util;
+using NPOI.POIFS.NIO;
+using NPOI.SS.Formula.Functions;
+using System.Linq;
+using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Controls;
-using HMI.Base;
-using HMI.Core.Util;
-using HMI.ParameterManage.Entity;
-using HMI.UI.Util;
+using System.Windows.Markup;
namespace HMI.ParameterManage
{
@@ -13,8 +19,7 @@
/// </summary>
public partial class ParameterManage : PluginControl
{
- private ControlModel Model;
- private SqliteHelper SqliteHelper;
+ private XmlModel Model;
public ParameterManage()
{
@@ -23,37 +28,14 @@
public override void InitFinish()
{
- string dbpath = Path.Combine(BaseFolder, "ParameterManage.db");
- if (!File.Exists(dbpath))
- {
- SqliteHelper.CreateDatabase(dbpath);
- }
- SqliteHelper = new SqliteHelper(dbpath);
- SqliteHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS product (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- name TEXT NOT NULL,
- isMaster INTEGER,
- parentId INTEGER,
- UNIQUE(name)
- );
-CREATE TABLE IF NOT EXISTS parameter (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- name TEXT NOT NULL,
- value TEXT,
- unit TEXT,
- description TEXT,
- pGroup TEXT,
- productName TEXT,
- UNIQUE(productName,name)
- );
-");
- Model = new ControlModel(SqliteHelper);
+ Model = new XmlModel(BaseFolder);
DataContext = Model;
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
Model.LoadProducts();
+ Model.LoadParameters();
Loaded -= UserControl_Loaded;
}
@@ -63,7 +45,19 @@
switch (btn.Name)
{
case "addBtn":
- OpenAddDialog();
+ OpenProductDialog(null);
+ break;
+ case "refreshBtn":
+ Model.LoadProducts();
+ break;
+ case "editProductBtn":
+ OpenProductDialog((ProductData)btn.DataContext);
+ break;
+ case "delProductBtn":
+ TryDeleteProduct((ProductData)btn.DataContext);
+ break;
+ case "delBatchBtn":
+ TryDeleteProducts();
break;
case "refrshBtn":
Model.LoadProducts();
@@ -77,20 +71,25 @@
case "editParameterBtn":
OpenAddParameterDialog((ParameterData)btn.DataContext);
break;
+ case "delParameterBtn":
+ TryDeleteParameter((ParameterData)btn.DataContext);
+ break;
+ case "deleteBatchParameterBtn":
+ TryDeleteParameters();
+ break;
default:
break;
}
}
- private void OpenAddDialog()
+ private void OpenProductDialog(ProductData data)
{
- var win = new ProductModal
+ var win = new ProductModal(Model)
{
- Title = "鏂板浜у搧",
+ Title = data == null ? this.lang("Pm.Product.Add") : this.lang("Pm.Product.Edit"),
Owner = Window.GetWindow(this),
- sqliteHelper = SqliteHelper
};
- if (win.Open(new ProductData()) == true)
+ if (win.Open(data ?? new ProductData(), data != null) == true)
{
Model.LoadProducts();
}
@@ -100,20 +99,90 @@
{
if (Model.SelectedProduct == null)
{
- ToastHelper.Warning(Window.GetWindow(this), "璇峰厛閫夋嫨涓�椤逛骇鍝�");
+ ToastHelper.Warning(Window.GetWindow(this), this.lang("Pm.PleaseSelectProduct"));
return;
}
- var win = new ParameterModal
+ //var win = new ParameterModal(Model)
+ //{
+ // Title = data == null ? this.lang("Pm.Parameter.Add") : this.lang("Pm.Parameter.Edit"),
+ // Owner = Window.GetWindow(this),
+ //};
+ //if (win.Open(Model.SelectedProduct.Name, data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }, Model.groups) == true)
+ //{
+ // Model.LoadParameters();
+ //}
+
+ SettingModal modal = new SettingModal()
{
- Title = data == null ? "鏂板鍙傛暟" : "缂栬緫鍙傛暟",
- Owner = Window.GetWindow(this),
- sqliteHelper = SqliteHelper
+ Title = data == null ? this.lang("Pm.Parameter.Add") : this.lang("Pm.Parameter.Edit"),
+ Owner = Window.GetWindow(this)
};
- if (win.Open(data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }) == true)
+ var target = data ?? new ParameterData();
+ if (modal.Open(target, Model.Parameters, Model.groups, Model.SelectedProduct.Name) == true)
{
+ //if (index == -1)
+ //{
+ // Datasource.Add(modal.Data);
+ // ParameterManager.SaveCommonParameter(Datasource);
+ //}
+ //else
+ //{
+ // ParameterManager.SaveCommonParameter(Datasource);
+ //}
+ Model.SaveOrUpdateParameter(target);
Model.LoadParameters();
}
}
+ private void TryDeleteProduct(ProductData data)
+ {
+ if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeleteSingle", data.Name))
+ == MessageBoxResult.OK)
+ {
+ Model.DeleteProduct(data);
+ Model.LoadProducts();
+ }
+ }
+
+ private void TryDeleteProducts()
+ {
+ var temp = Model.Products.Where(p => p.IsSelected).Count();
+ if (temp <= 0)
+ {
+ this.Warning(this.lang("HMI.NoDeleteData"));
+ return;
+ }
+ if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeletes", temp))
+ == MessageBoxResult.OK)
+ {
+ Model.DeleteProducts();
+ Model.LoadProducts();
+ }
+ }
+
+ private void TryDeleteParameter(ParameterData data)
+ {
+ if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeleteSingle", data.Name)) == MessageBoxResult.OK)
+ {
+ Model.DeleteParameter(data);
+ Model.LoadParameters();
+ }
+ }
+
+ private void TryDeleteParameters()
+ {
+ var temp = Model.Parameters.Where(p => p.IsSelected).Count();
+ if (temp <= 0)
+ {
+ this.Warning(this.lang("HMI.NoDeleteData"));
+ return;
+ }
+ if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeletes", temp))
+ == MessageBoxResult.OK)
+ {
+ Model.DeleteParameters();
+ Model.LoadParameters();
+ }
+ }
}
}
--
Gitblit v1.9.1