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.MenuManage/RoleManage.xaml.cs |  184 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 184 insertions(+), 0 deletions(-)

diff --git a/HMI.MenuManage/RoleManage.xaml.cs b/HMI.MenuManage/RoleManage.xaml.cs
new file mode 100644
index 0000000..2de1f01
--- /dev/null
+++ b/HMI.MenuManage/RoleManage.xaml.cs
@@ -0,0 +1,184 @@
+锘縰sing HMI.Base;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+using HMI.MenuManage.Model;
+using HMI.UI.Util;
+using Panuon.WPF.UI;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows;
+using System.Windows.Controls;
+
+namespace HMI.MenuManage
+{
+    /// <summary>
+    /// UserControl1.xaml 鐨勪氦浜掗�昏緫
+    /// </summary>
+    public partial class RoleManage : PluginControl
+    {
+        #region 灞炴��
+        private RoleManageModel Model;
+        #endregion
+
+        public RoleManage()
+        {
+            Model = new RoleManageModel();
+            this.DataContext = Model;
+            this.Loaded += RoleManage_Loaded;
+            InitializeComponent();
+        }
+
+        private void RoleManage_Loaded(object sender, RoutedEventArgs e)
+        {
+            Model.LoadData();
+            this.Loaded -= RoleManage_Loaded;
+        }
+
+        public override void DoClose(object sender, EventArgs e)
+        {
+            try
+            {
+                Model?.sqliteHelper?.Close();
+            }
+            catch (Exception ex)
+            {
+                log.Warn("Do Close Failed.", ex);
+            }
+        }
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            try
+            {
+                Button btn = (Button)sender;
+                if (btn.Name == "addBtn")
+                {
+                    try
+                    {
+                        RoleModal modal = new RoleModal
+                        {
+                            Title = this.lang("HMI.Role.Add"),
+                            Owner = Window.GetWindow(this),
+                            sqliteHelper = Model.sqliteHelper
+                        };
+                        if (modal.Open(new RoleData()) == true)
+                        {
+                            Model.LoadData();
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        log.Error("Add Role Failed.", ex);
+                        ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.AddFailed")}: {ex.Message}");
+                    }
+                }
+                else if (btn.Name == "refreshBtn")
+                {
+                    try
+                    {
+                        Model.LoadData();
+                    }
+                    catch (Exception ex)
+                    {
+                        log.Error("Refresh Role Failed.", ex);
+                        ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.RefreshFailed")}: {ex.Message}");
+                    }
+                }
+                else if (btn.Name == "menuBtn")
+                {
+                    try
+                    {
+                        Model.LoadRelData((RoleData)btn.DataContext);
+                    }
+                    catch (Exception ex)
+                    {
+                        log.Error("Load Role-Menu Failed.", ex);
+                        ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.RefreshFailed")}: {ex.Message}");
+                    }
+                }
+                else if (btn.Name == "editBtn")
+                {
+                    try
+                    {
+                        RoleModal modal = new RoleModal
+                        {
+                            Title = this.lang("HMI.Role.Edit"),
+                            Owner = Window.GetWindow(this),
+                            sqliteHelper = Model.sqliteHelper
+                        };
+                        if (modal.Open((RoleData)btn.DataContext) == true)
+                        {
+                            Model.LoadData();
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        log.Error("Edit Role Failed.", ex);
+                        ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.EditFailed")}: {ex.Message}");
+                    }
+                }
+                else if (btn.Name == "deleteBatchBtn")
+                {
+                    try
+                    {
+                        List<string> codes = Model.DataSource.Where(x => x.Selected).Select(x => x.Code).ToList();
+                        if (codes == null || codes.Count <= 0)
+                        {
+                            ToastHelper.Warning(Window.GetWindow(this), this.lang("HMI.NoDeleteData"));
+                            return;
+                        }
+
+                        var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this),
+                            this.lang("HMI.MakeSureDeletes", codes.Count));
+                        if (res == MessageBoxResult.OK)
+                        {
+                            Model.DeleteRoleByCodes(codes);
+                            Model.LoadData();
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        log.Error("Delete Role Batch Failed.", ex);
+                        ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.DeleteFailed")}: {ex.Message}");
+                    }
+                }
+                else if (btn.Name == "delBtn")
+                {
+                    try
+                    {
+                        var data = (RoleData)((Button)sender).DataContext;
+                        var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this),
+                             this.lang("HMI.MakeSureDeleteSingle", data.Name));
+                        if (res == MessageBoxResult.OK)
+                        {
+                            Model.DelSingleData(data);
+                            Model.LoadData();
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        log.Error("Delete Role Failed.", ex);
+                        ToastHelper.Error((WindowX)Window.GetWindow(this), LangUtil.Get("App.DeleteFailed"));
+                    }
+                }
+                else if (btn.Name == "saveMenuBtn")
+                {
+                    try
+                    {
+                        Model.SaveRelData(Model.SelectedValue);
+                        ToastHelper.Success((WindowX)Window.GetWindow(this), LangUtil.Get("App.SaveSuccess"));
+                    }
+                    catch (Exception ex)
+                    {
+                        log.Error("Save Role-Menu Failed.", ex);
+                        ToastHelper.Error((WindowX)Window.GetWindow(this), LangUtil.Get("App.SaveFailed"));
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error("Something Error...", ex);
+            }
+        }
+    }
+}

--
Gitblit v1.9.1