From 12e606635c42ea20f4b7c2bdda5204237a4b4c96 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 02 三月 2026 16:14:49 +0800
Subject: [PATCH] 优化

---
 HMI.ParameterManage/Model/XmlModel.cs |   33 ++++++++++++++++++++++++++++++---
 1 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/HMI.ParameterManage/Model/XmlModel.cs b/HMI.ParameterManage/Model/XmlModel.cs
index cf541bd..da86c39 100644
--- a/HMI.ParameterManage/Model/XmlModel.cs
+++ b/HMI.ParameterManage/Model/XmlModel.cs
@@ -53,6 +53,8 @@
             }
         }
 
+        public List<string> groups { get; private set; }
+
         public bool ValidateProductName(object value, out string msg)
         {
             msg = null;
@@ -94,10 +96,10 @@
             if (SelectedProduct != null)
             {
                 parameters = ProductManager.GetParametersByProductName<ObservableCollection<ParameterData>>(SelectedProduct.Name);
-
             }
             parameters = parameters ?? new ObservableCollection<ParameterData>();
             Parameters = parameters;
+            groups = Parameters.Where(p => !string.IsNullOrEmpty(p.PGroup)).Select(p => p.PGroup).Distinct().ToList();
         }
 
         public void SaveOrUpdateData(ProductData data)
@@ -136,6 +138,16 @@
             var temp = XmlHelper.DeepClone(Products);
             temp.Add(data);
             SaveProduct(temp);
+            if (!string.IsNullOrEmpty(data.ParentId))
+            {
+                var parameters =
+                    ProductManager.GetParametersByProductName<List<ParameterData>>(data.ParentId);
+                foreach (var p in parameters)
+                {
+                    p.ProductName = data.Name;
+                }
+                SaveParameter(data.Name, parameters);
+            }
         }
 
         /// <summary>
@@ -218,6 +230,7 @@
             {
                 var temp = Parameters.Where(p => p != data).ToList();
                 SaveParameter(temp);
+                LoggerHelper.Info("Product Manage", $"User: {UserInfo.User.Name} deleted Product parameter:{data.Name} in Product:{data.ProductName}");
             }
         }
 
@@ -226,8 +239,16 @@
         /// </summary>
         public void DeleteParameters()
         {
-            var temp = Parameters.Where(p => !p.IsSelected).ToList();
-            SaveParameter(temp);
+            var needDelet = Parameters.Where(p => p.IsSelected).ToList();
+            if (needDelet.Count > 0)
+            {
+                var first = needDelet[0];
+                var names = needDelet.Select(e => e.Name).ToList();
+
+                var temp = Parameters.Where(p => !p.IsSelected).ToList();
+                SaveParameter(temp);
+                LoggerHelper.Info("Product Manage", $"User: {UserInfo.User.Name} deleted Product parameters:{string.Join(",", names)} in Product:{first.ProductName}");
+            }
         }
 
         /// <summary>
@@ -239,6 +260,12 @@
             string fileName = Path.Combine(PathHelper.ProductDataFolder, "Parameter", $"Parameter_{SelectedProduct.Name}.data");
             XmlHelper.SerializeToXml(fileName, datas);
         }
+
+        private void SaveParameter(string product, IList<ParameterData> datas)
+        {
+            string fileName = Path.Combine(PathHelper.ProductDataFolder, "Parameter", $"Parameter_{product}.data");
+            XmlHelper.SerializeToXml(fileName, datas);
+        }
         #endregion
     }
 }

--
Gitblit v1.9.1