alielie
2025-03-03 21e28b068c8d0763a6d4ab613388a77a0db157fb
HMI.MenuManage/MenuManage.xaml.cs
@@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
@@ -16,29 +18,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()
@@ -74,6 +55,7 @@
                catch (Exception ex)
                {
                    log.Error("Add Menu Failed.", ex);
                    ToastHelper.Error(Window.GetWindow(this), $"新增失败!{ex.Message}");
                }
            }
            else if (btn.Name == "refreshBtn")
@@ -85,9 +67,34 @@
                catch (Exception ex)
                {
                    log.Error("Refresh Menu List Failed.", ex);
                    ToastHelper.Error(Window.GetWindow(this), $"刷新失败!{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), "请选择要删除的菜单!");
                        return;
                    }
                    var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this),
                        $"确定删除选中的[{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), $"删除失败!{ex.Message}");
                }
            }
            else if (btn.Name == "editBtn")
            {
                try
@@ -107,8 +114,8 @@
                }
                catch (Exception ex)
                {
                    log.Error("Edit Menu Failed.", ex);
                    ToastHelper.Error(Window.GetWindow(this), $"编辑失败!{ex.Message}");
                }
            }
            else if (btn.Name == "delBtn")
@@ -116,7 +123,8 @@
                try
                {
                    var data = (MenuData)((Button)sender).DataContext;
                    var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"确定删除[{data.Name}]吗?该操作不可逆!");
                    var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this),
                        $"确定删除菜单[{data.Name}]吗?该操作不可逆!");
                    if (res == MessageBoxResult.OK)
                    {
                        Model.DeleteMenuById(data.Id);
@@ -126,6 +134,7 @@
                catch (Exception ex)
                {
                    log.Error("Delete Menu Failed.", ex);
                    ToastHelper.Error(Window.GetWindow(this), $"删除失败!{ex.Message}");
                }
            }
        }
@@ -139,11 +148,6 @@
        private void treeViewer_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {
            table.SelectedItem = e.NewValue;
        }
        public void SetLogger(ILog logger)
        {
            this.log = logger;
        }
    }
}