alielie
2025-03-03 4c3eb7f334abb8129b57e86f2935d75d0b3070b4
HMI.ParameterManage/ParameterManage.xaml.cs
@@ -1,9 +1,12 @@
using 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();
            }
        }
    }
}