alielie
2025-03-13 a3ba25607612818c28d421bfa8eb2f92339d71ac
HMI.ParameterManage/ParameterManage.xaml.cs
@@ -1,10 +1,11 @@
using System.IO;
using System.Windows;
using System.Windows.Controls;
using HMI.Base;
using HMI.Base;
using HMI.Core.Util;
using HMI.ParameterManage.Entity;
using HMI.ParameterManage.Model;
using HMI.UI.Util;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace HMI.ParameterManage
{
@@ -13,8 +14,8 @@
    /// </summary>
    public partial class ParameterManage : PluginControl
    {
        private ControlModel Model;
        private SqliteHelper SqliteHelper;
        public static string FileFolder { get; private set; }
        private XmlModel Model;
        public ParameterManage()
        {
@@ -23,31 +24,8 @@
        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);
            FileFolder = BaseFolder;
            DataContext = Model;
        }
@@ -63,7 +41,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 +67,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 ? 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()) == true)
            {
                Model.LoadProducts();
            }
@@ -100,14 +94,13 @@
        {
            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 ? "新增参数" : "编辑参数",
                Title = data == null ? this.lang("Pm.Parameter.Add") : this.lang("Pm.Parameter.Edit"),
                Owner = Window.GetWindow(this),
                sqliteHelper = SqliteHelper
            };
            if (win.Open(data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }) == true)
            {
@@ -115,5 +108,56 @@
            }
        }
        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();
            }
        }
    }
}