alielie
2025-03-03 4c3eb7f334abb8129b57e86f2935d75d0b3070b4
HMI.ParameterManage/ProductModal.xaml.cs
@@ -13,6 +13,8 @@
using HMI.Core.Util;
using HMI.ParameterManage.Entity;
using HMI.UI;
using HMI.ParameterManage.Model;
using HMI.UI.DpUtil;
namespace HMI.ParameterManage
{
@@ -21,15 +23,17 @@
    /// </summary>
    public partial class ProductModal : WindowX
    {
        public ProductModal()
        private XmlModel DataModel;
        public ProductModal(XmlModel dataModel)
        {
            DataModel = dataModel;
            this.DataContext = this;
            InitializeComponent();
        }
        public ProductData Data { get; set; }
        public SqliteHelper sqliteHelper { get; set; }
        private bool _isProcessing;
@@ -54,7 +58,7 @@
                        return;
                    }
                    SaveOrUpdateData();
                    DataModel.SaveOrUpdateData(Data);
                }
                catch (Exception ex)
                {
@@ -71,50 +75,20 @@
            base.OnClosing(e);
        }
        private bool ValidateName(object value, out string msg)
        {
            return DataModel.ValidateProductName(value, out msg);
        }
        private bool ValidateForm()
        {
            try
            bool flag = FormGroupHelper.ValidateForm(formPanel);
            if (flag)
            {
                //
                FormValidateException ex = new FormValidateException();
                string segment = string.IsNullOrEmpty(Data.Id) ? "" : $" AND id!='{Data.Id}'";
                string sql = $"SELECT 1 FROM product WHERE name='{TbName.Text}'{segment};";
                if (string.IsNullOrEmpty(TbName.Text))
                {
                    ex.Result.Add(new FormGroupValidateResult("请输入产品名称", FgName));
                }
                else if (sqliteHelper.HasData(sql))
                {
                    ex.Result.Add(new FormGroupValidateResult("产品名称不能重复", FgName));
                }
                else
                {
                    FgName.ValidateResult = ValidateResult.None;
                    FgName.Message = null;
                }
                if (!ex.Success)
                {
                    throw ex;
                }
            }
            catch (FormValidateException ex)
            {
                foreach (var data in ex.Result)
                {
                    var fg = (FormGroup)data.Sender;
                    fg.ValidateResult = ValidateResult.Error;
                    fg.Message = data.Message;
                }
                return false;
            }
            Data.Name = TbName.Text;
            Data.IsMaster = TbIsMaster.IsChecked == true;
            Data.ParentId = TbParentId.Text;
            return true;
            }
            return flag;
        }
        public bool? Open(ProductData data)
@@ -125,35 +99,6 @@
            TbParentId.Text = Data.ParentId;
            return this.ShowDialog();
        }
        private void SaveOrUpdateData()
        {
            if (string.IsNullOrEmpty(Data.Id))
            {
                InsertData(Data);
            }
            else
            {
                UpdateData(Data);
            }
        }
        public void InsertData(ProductData data)
        {
            string sql = $@"INSERT INTO product (name,isMaster,parentId)
                VALUES
                ('{data.Name}',{(data.IsMaster ? 1 : 0)} ,{data.ParentId} );";
            sqliteHelper.ExecuteSql(sql);
        }
        public void UpdateData(ProductData data)
        {
            string sql = $@"UPDATE product SET name='{data.Name}',isMaster='{(data.IsMaster ? 1 : 0)}',parentId = {data.ParentId}
WHERE id='{data.Id}';";
            sqliteHelper.ExecuteSql(sql);
        }
    }
}