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 作为历史根节点

---
 HMI.AlermInfoManage/AlarmSettingList.xaml.cs |  269 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 269 insertions(+), 0 deletions(-)

diff --git a/HMI.AlermInfoManage/AlarmSettingList.xaml.cs b/HMI.AlermInfoManage/AlarmSettingList.xaml.cs
new file mode 100644
index 0000000..0ca8013
--- /dev/null
+++ b/HMI.AlermInfoManage/AlarmSettingList.xaml.cs
@@ -0,0 +1,269 @@
+锘縰sing HMI.Core.Entity;
+using HMI.Core.Util;
+using HMI.UI.Util;
+using HMI.Util;
+using HMI.Util.Alarm;
+using log4net;
+using Microsoft.Win32;
+using Panuon.WPF.UI;
+using System;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Windows;
+using System.Windows.Controls;
+
+namespace HMI.AlarmInfoManage
+{
+    /// <summary>
+    /// AlarmSettingList.xaml 鐨勪氦浜掗�昏緫
+    /// </summary>
+    public partial class AlarmSettingList : WindowX
+    {
+        private ILog log;
+        public AlarmSettingList(ILog log)
+        {
+            BlockDatasource = AlarmUtil.BlockSettings;
+            MarkDatasource = AlarmUtil.MarkSettings;
+            this.log = log;
+            DataContext = this;
+            InitializeComponent();
+        }
+
+        private ObservableCollection<AlarmSetting> blockDatasource;
+
+        public ObservableCollection<AlarmSetting> BlockDatasource
+        {
+            get => blockDatasource;
+            set { Set(ref blockDatasource, value); }
+        }
+
+        private ObservableCollection<AlarmSetting> markDatasource;
+
+        public ObservableCollection<AlarmSetting> MarkDatasource
+        {
+            get => markDatasource;
+            set { Set(ref markDatasource, value); }
+        }
+
+        private ObservableCollection<string> items =
+            new ObservableCollection<string> { LangUtil.Get("Alm.DbBlockAlarm"), LangUtil.Get("Alm.TagAlarm") };
+
+        public ObservableCollection<string> Items
+        {
+            get => items;
+            set { Set(ref items, value); }
+        }
+
+        private int itemIndex;
+        public int ItemIndex
+        {
+            get => itemIndex;
+            set
+            {
+                Set(ref itemIndex, value);
+                LoadData();
+            }
+        }
+
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            Button btn = sender as Button;
+            AlarmSetting data = btn?.Tag as AlarmSetting;
+            switch (btn.Name)
+            {
+                case "refreshBtn":
+                    LoadData();
+                    break;
+                case "addBtn":
+                    AddData(new AlarmSetting());
+                    break;
+                case "delBatchBtn":
+                    DeleteBatchData();
+                    break;
+                case "editBtn":
+                    EditData(ItemIndex == 0 ? BlockDatasource.IndexOf(data) : MarkDatasource.IndexOf(data), data);
+                    break;
+                case "exportBtn":
+                    ExportData();
+                    break;
+                case "importBtn":
+                    ImportData();
+                    break;
+                case "delBtn":
+                    DeleteData(ItemIndex == 0 ? BlockDatasource.IndexOf(data) : MarkDatasource.IndexOf(data));
+                    break;
+                default:
+                    break;
+            }
+        }
+
+        private void LoadData()
+        {
+            BlockDatasource = AlarmUtil.BlockSettings;
+            MarkDatasource = AlarmUtil.MarkSettings;
+        }
+
+        private void AddData(AlarmSetting data)
+        {
+            try
+            {
+                var temp = ItemIndex == 0 ? this.lang("Alm.DbBlockAlarm") : this.lang("Alm.TagAlarm");
+                var modal = new AlarmSettingModal(log)
+                {
+                    Title = $"{this.lang("App.Add")}{temp}",
+                    Owner = Window.GetWindow(this),
+                };
+                if (modal.Open(-1, data, ItemIndex == 0 ? BlockDatasource : MarkDatasource, ItemIndex == 0) == true)
+                {
+                    LoadData();
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error("Add AlarmSetting Failed.", ex);
+                ToastHelper.Error(this, $"{this.lang("App.AddFailed")}: {ex.Message}");
+            }
+        }
+
+        private void EditData(int index, AlarmSetting data)
+        {
+            try
+            {
+                var temp = ItemIndex == 0 ? this.lang("Alm.DbBlockAlarm") : this.lang("Alm.TagAlarm");
+                var modal = new AlarmSettingModal(log)
+                {
+                    Title = $"{this.lang("App.Edit")}{temp}",
+                    Owner = Window.GetWindow(this),
+                };
+                if (modal.Open(index, data, ItemIndex == 0 ? BlockDatasource : MarkDatasource, ItemIndex == 0) == true)
+                {
+                    LoadData();
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error("Edit AlarmSetting Failed.", ex);
+                ToastHelper.Error(this, $"{this.lang("App.EditFailed")}: {ex.Message}");
+            }
+        }
+
+        private void ExportData()
+        {
+            try
+            {
+                SaveFileDialog sfd = new SaveFileDialog
+                {
+                    FileName = ItemIndex == 0 ? "DB鍧楁姤璀�.xls" : "鏍囧織浣嶆姤璀�.xls",
+                    Filter = "Excel|*.xls"
+                };
+                if (sfd.ShowDialog() == true)
+                {
+                    ExcelHelper.ExportExcel(sfd.FileName, ItemIndex == 0 ? BlockDatasource : MarkDatasource);
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error("Export Failed.", ex);
+                ToastHelper.Error(this, $"{this.lang("App.ExportFailed")}: {ex.Message}");
+            }
+        }
+
+        private void ImportData()
+        {
+            try
+            {
+                OpenFileDialog ofd = new OpenFileDialog
+                {
+                    Filter = "Excel|*.xls"
+                };
+                if (ofd.ShowDialog() == true)
+                {
+                    var datasource = new ObservableCollection<AlarmSetting>(
+                        ExcelHelper.ReadFromExcel<AlarmSetting>(ofd.FileName));
+                    if (ItemIndex == 0)
+                    {
+                        AlarmUtil.UpdateBlockSettings(datasource);
+                        BlockDatasource = AlarmUtil.BlockSettings;
+                    }
+                    else
+                    {
+                        AlarmUtil.UpdateMarkSettings(datasource);
+                        MarkDatasource = AlarmUtil.MarkSettings;
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error("Import Failed.", ex);
+                ToastHelper.Error(this, $"{this.lang("App.ImportFailed")}: {ex.Message}");
+            }
+        }
+
+        private void DeleteData(int index)
+        {
+            try
+            {
+                if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeleteThis")) == MessageBoxResult.OK)
+                {
+                    bool isBlock = ItemIndex == 0;
+                    var temp = XmlHelper.DeepClone(isBlock ? BlockDatasource : MarkDatasource);
+
+                    temp.RemoveAt(index);
+                    if (isBlock)
+                    {
+                        AlarmUtil.UpdateBlockSettings(temp);
+                    }
+                    else
+                    {
+                        AlarmUtil.UpdateMarkSettings(temp);
+                    }
+                    LoadData();
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error("Delete AlarmSetting Failed.", ex);
+                ToastHelper.Error(this, $"{this.lang("App.DeleteFailed")}: {ex.Message}");
+            }
+        }
+        private void DeleteBatchData()
+        {
+            try
+            {
+                var temp = (ItemIndex == 0 ? BlockDatasource : MarkDatasource).Where(e => e.IsSelected).ToList();
+                if (temp == null || temp.Count <= 0)
+                {
+                    ToastHelper.Warning(Window.GetWindow(this), this.lang("HMI.NoDeleteData"));
+                    return;
+                }
+
+                if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeletes", temp.Count))
+                    == MessageBoxResult.OK)
+                {
+                    bool isBlock = ItemIndex == 0;
+                    temp = (isBlock ? BlockDatasource : MarkDatasource).Where(e => !e.IsSelected).ToList();
+                    if (isBlock)
+                    {
+                        AlarmUtil.UpdateBlockSettings(temp);
+                    }
+                    else
+                    {
+                        AlarmUtil.UpdateMarkSettings(temp);
+                    }
+                    LoadData();
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error("Delete Batch AlarmSetting Failed.", ex);
+                ToastHelper.Error(this, $"{this.lang("App.DeleteFailed")}: {ex.Message}");
+            }
+        }
+
+        private void WindowX_Loaded(object sender, RoutedEventArgs e)
+        {
+            ItemIndex = 0;
+            Loaded -= WindowX_Loaded;
+        }
+    }
+}

--
Gitblit v1.9.1