From 771a0e7b6b1276087515bbe94de28358cb92963b Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期四, 04 六月 2026 10:32:27 +0800
Subject: [PATCH] 优化老化;

---
 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