alielie
2025-04-10 6bcafc823e836ecd5790f87178a906333699f868
HMI.MenuManage/MenuManage.xaml.cs
@@ -1,13 +1,14 @@
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
using HMI.Base;
using HMI.Base;
using HMI.Core.Util;
using HMI.MenuManage.Entity;
using HMI.MenuManage.Model;
using HMI.UI.Util;
using log4net;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace HMI.MenuManage
{
@@ -16,29 +17,8 @@
    /// </summary>
    public partial class MenuManage : PluginControl
    {
        #region ...
        public virtual event PropertyChangedEventHandler PropertyChanged;
        protected virtual void RaisePropertyChanged(string name)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        }
        protected void RaiseAndSetIfChanged<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
        {
            old = @new;
            if (propertyName != null)
            {
                RaisePropertyChanged(propertyName);
            }
        }
        #endregion
        #region 属性
        private MenuManageModel Model;
        private ILog log;
        #endregion
        public MenuManage()
@@ -48,11 +28,7 @@
            InitializeComponent();
        }
        #region 属性
        #endregion
        private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var btn = ((Button)sender);
            if (btn.Name == "addBtn")
@@ -61,7 +37,7 @@
                {
                    MenuModal window = new MenuModal
                    {
                        Title = "新增菜单",
                        Title = $"{LangUtil.Get("HMI.Menu.Add")}",
                        sqliteHelper = Model.sqliteHelper,
                        Owner = Window.GetWindow(this)
                    };
@@ -74,6 +50,7 @@
                catch (Exception ex)
                {
                    log.Error("Add Menu Failed.", ex);
                    ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.AddFailed")}: {ex.Message}");
                }
            }
            else if (btn.Name == "refreshBtn")
@@ -85,9 +62,34 @@
                catch (Exception ex)
                {
                    log.Error("Refresh Menu List Failed.", ex);
                    ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.RefreshFailed")}: {ex.Message}");
                }
            }
            else if (btn.Name == "deleteBtn") { }
            else if (btn.Name == "deleteBatchBtn")
            {
                try
                {
                    List<string> ids = Model.DataSource.Where(x => x.Selected).Select(x => x.Id).ToList();
                    if (ids == null || ids.Count <= 0)
                    {
                        ToastHelper.Warning(Window.GetWindow(this), LangUtil.Get("HMI.NoDeleteData"));
                        return;
                    }
                    var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this),
                        string.Format(LangUtil.Get("HMI.MakeSureDeletes"), ids.Count));
                    if (res == MessageBoxResult.OK)
                    {
                        Model.DeleteMenuByIds(ids);
                        Model.LoadData();
                    }
                }
                catch (Exception ex)
                {
                    log.Error("Delete Menu Batch Failed.", ex);
                    ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.DeleteFailed")}: {ex.Message}");
                }
            }
            else if (btn.Name == "editBtn")
            {
                try
@@ -95,7 +97,7 @@
                    var data = (MenuData)btn.DataContext;
                    MenuModal window = new MenuModal
                    {
                        Title = "编辑菜单",
                        Title = $"{LangUtil.Get("HMI.Menu.Edit")}",
                        sqliteHelper = Model.sqliteHelper,
                        Owner = Window.GetWindow(this)
                    };
@@ -107,8 +109,8 @@
                }
                catch (Exception ex)
                {
                    log.Error("Edit Menu Failed.", ex);
                    ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("HMI.EditFailed")}: {ex.Message}");
                }
            }
            else if (btn.Name == "delBtn")
@@ -116,7 +118,8 @@
                try
                {
                    var data = (MenuData)((Button)sender).DataContext;
                    var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"确定删除[{data.Name}]吗?该操作不可逆!");
                    var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this),
                        string.Format(LangUtil.Get("HMI.MakeSureDeleteSingle"), data.Name));
                    if (res == MessageBoxResult.OK)
                    {
                        Model.DeleteMenuById(data.Id);
@@ -126,7 +129,20 @@
                catch (Exception ex)
                {
                    log.Error("Delete Menu Failed.", ex);
                    ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("HMI.DeleteFailed")}: {ex.Message}");
                }
            }
        }
        public override void DoClose(object sender, EventArgs e)
        {
            try
            {
                Model?.sqliteHelper?.Close();
            }
            catch (Exception ex)
            {
                log.Warn("Do Close Failed.", ex);
            }
        }
@@ -139,11 +155,6 @@
        private void treeViewer_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {
            table.SelectedItem = e.NewValue;
        }
        public void SetLogger(ILog logger)
        {
            this.log = logger;
        }
    }
}