From 4c3eb7f334abb8129b57e86f2935d75d0b3070b4 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 03 三月 2025 18:55:31 +0800
Subject: [PATCH] 完善UI;新增TestResult;

---
 HMI.ParameterManage/ParameterManage.xaml.cs |  113 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 77 insertions(+), 36 deletions(-)

diff --git a/HMI.ParameterManage/ParameterManage.xaml.cs b/HMI.ParameterManage/ParameterManage.xaml.cs
index 9a9bc3a..8da173a 100644
--- a/HMI.ParameterManage/ParameterManage.xaml.cs
+++ b/HMI.ParameterManage/ParameterManage.xaml.cs
@@ -1,9 +1,12 @@
 锘縰sing System.IO;
+using System.Linq;
 using System.Windows;
 using System.Windows.Controls;
+using System.Windows.Markup;
 using HMI.Base;
 using HMI.Core.Util;
 using HMI.ParameterManage.Entity;
+using HMI.ParameterManage.Model;
 using HMI.UI.Util;
 
 namespace HMI.ParameterManage
@@ -13,8 +16,7 @@
     /// </summary>
     public partial class ParameterManage : PluginControl
     {
-        private ControlModel Model;
-        private SqliteHelper SqliteHelper;
+        private XmlModel Model;
 
         public ParameterManage()
         {
@@ -23,31 +25,7 @@
 
         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;
         }
 
@@ -63,7 +41,16 @@
             switch (btn.Name)
             {
                 case "addBtn":
-                    OpenAddDialog();
+                    OpenProductDialog(null);
+                    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 +64,24 @@
                 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 ? "鏂板浜у搧" : "缂栬緫浜у搧",
                 Owner = Window.GetWindow(this),
-                sqliteHelper = SqliteHelper
             };
-            if (win.Open(new ProductData()) == true)
+            if (win.Open(data ?? new ProductData()) == true)
             {
                 Model.LoadProducts();
             }
@@ -103,11 +94,10 @@
                 ToastHelper.Warning(Window.GetWindow(this), "璇峰厛閫夋嫨涓�椤逛骇鍝�");
                 return;
             }
-            var win = new ParameterModal
+            var win = new ParameterModal(Model)
             {
                 Title = data == null ? "鏂板鍙傛暟" : "缂栬緫鍙傛暟",
                 Owner = Window.GetWindow(this),
-                sqliteHelper = SqliteHelper
             };
             if (win.Open(data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }) == true)
             {
@@ -115,5 +105,56 @@
             }
         }
 
+        private void TryDeleteProduct(ProductData data)
+        {
+            if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"纭畾瑕佸垹闄や骇鍝乕{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("璇烽�夋嫨瑕佸垹闄ょ殑浜у搧");
+                return;
+            }
+            if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"纭畾瑕佸垹闄ら�変腑鐨刐{temp}]鏉′骇鍝佸悧锛熻鎿嶄綔鏃犳硶鎾ら攢")
+                == MessageBoxResult.OK)
+            {
+                Model.DeleteProducts();
+                Model.LoadProducts();
+            }
+        }
+
+        private void TryDeleteParameter(ParameterData data)
+        {
+            if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"纭畾瑕佸垹闄ゅ弬鏁癧{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("璇烽�夋嫨瑕佸垹闄ょ殑鍙傛暟");
+                return;
+            }
+            if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"纭畾瑕佸垹闄ら�変腑鐨刐{temp}]鏉″弬鏁板悧锛熻鎿嶄綔鏃犳硶鎾ら攢")
+                == MessageBoxResult.OK)
+            {
+                Model.DeleteParameters();
+                Model.LoadParameters();
+            }
+        }
+
     }
 }

--
Gitblit v1.9.1