From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点
---
Plugin.ModelManage/DataModal.xaml.cs | 142 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 142 insertions(+), 0 deletions(-)
diff --git a/Plugin.ModelManage/DataModal.xaml.cs b/Plugin.ModelManage/DataModal.xaml.cs
new file mode 100644
index 0000000..3bf2936
--- /dev/null
+++ b/Plugin.ModelManage/DataModal.xaml.cs
@@ -0,0 +1,142 @@
+锘縰sing HMI.Core.Util;
+using HMI.UI.DpUtil;
+using HMI.UI.Util;
+using Panuon.WPF.UI;
+using Plugin.ModelManage.Entity;
+using System.ComponentModel;
+
+namespace Plugin.ModelManage
+{
+ /// <summary>
+ /// ModalWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class DataModal : WindowX
+ {
+ public DataModal()
+ {
+ this.DataContext = this;
+ InitializeComponent();
+ }
+ public ModelData Data { get; set; }
+
+ private SqliteHelper sqliteHelper;
+ private bool _isProcessing;
+
+ protected override void OnClosing(CancelEventArgs e)
+ {
+ //Press Continue Button
+ if (DialogResult == true)
+ {
+ if (_isProcessing)
+ {
+ e.Cancel = true;
+ return;
+ }
+ var okButton = WindowXModalDialog.GetOKButton(this);
+ try
+ {
+ _isProcessing = true;
+ ButtonHelper.SetIsPending(okButton, true);
+ if (!ValidateForm())
+ {
+ e.Cancel = true;
+ return;
+ }
+
+ SaveOrUpdateData();
+ }
+ catch (Exception ex)
+ {
+ ToastHelper.Error(this, $"Error锛亄ex.Message}");
+ e.Cancel = true;
+ return;
+ }
+ finally
+ {
+ _isProcessing = false;
+ ButtonHelper.SetIsPending(okButton, false);
+ }
+ }
+ base.OnClosing(e);
+ }
+
+ private bool ValidateModel(object value, out string err)
+ {
+ err = null;
+ string segment = string.IsNullOrEmpty(Data.Id) ? ";" : $"AND Id != {Data.Id};";
+ var sql = $"SELECT 1 FROM ModelData WHERE Model = '{value}' {segment}";
+ if (sqliteHelper.HasData(sql))
+ {
+ err = "鍨嬪彿涓嶈兘閲嶅";
+ return false;
+ }
+ return true;
+ }
+
+ private bool ValidateFixcode(object value, out string err)
+ {
+ err = null;
+ string segment = string.IsNullOrEmpty(Data.Id) ? ";" : $"AND Id != {Data.Id};";
+ var sql = $"SELECT 1 FROM ModelData WHERE Fixcode = '{value}' {segment}";
+ if (sqliteHelper.HasData(sql))
+ {
+ err = "鍥哄畾鐮佷笉鑳介噸澶�";
+ return false;
+ }
+ return true;
+ }
+
+ private bool ValidateForm()
+ {
+ bool flag = FormGroupHelper.ValidateForm(formPanel);
+ if (flag)
+ {
+ Data.Model = TbModel.Text;
+ Data.CodeLength = (int)NiCodeLength.Value;
+ Data.StartIndex = (int)NiStartIndex.Value;
+ //Data.Length = (int)NiLength.Value;
+ Data.Fixcode = TbFixcode.Text;
+ }
+ return flag;
+ }
+
+ public bool? Open(ModelData data, SqliteHelper sqliteHelper)
+ {
+ Data = data;
+ this.sqliteHelper = sqliteHelper;
+
+ TbModel.Text = Data.Model;
+ NiCodeLength.Value = Data.CodeLength;
+ NiStartIndex.Value = Data.StartIndex;
+ //NiLength.Value = Data.Length;
+ TbFixcode.Text = Data.Fixcode;
+ return this.ShowDialog();
+ }
+
+ private void SaveOrUpdateData()
+ {
+ if (string.IsNullOrEmpty(Data.Id))
+ {
+ InsertData(Data);
+ }
+ else
+ {
+ UpdateData(Data);
+ }
+ }
+
+ public void InsertData(ModelData data)
+ {
+ var sql = $@"INSERT INTO ModelData (Model, CodeLength, StartIndex, Length, Fixcode)
+VALUES ('{data.Model}', {data.CodeLength}, {data.StartIndex}, {data.Length}, '{data.Fixcode}');";
+ sqliteHelper.ExecuteSql(sql);
+ }
+
+ public void UpdateData(ModelData data)
+ {
+ var sql = $@"UPDATE ModelData SET Model='{data.Model}', CodeLength={data.CodeLength}, StartIndex={data.StartIndex},
+Length={data.Length}, Fixcode='{data.Fixcode}' WHERE Id={data.Id}";
+ sqliteHelper.ExecuteSql(sql);
+ }
+ }
+}
--
Gitblit v1.9.1