alielie
2025-03-03 1fca2167068e9ef2c079ec742f20313fc6697ab1
HMI.MenuManage/RoleManage.xaml.cs
@@ -1,15 +1,13 @@
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
using log4net;
using log4net.Repository.Hierarchy;
using Panuon.WPF.UI;
using HMI.Core.Api;
using HMI.Base;
using HMI.MenuManage.Entity;
using HMI.MenuManage.Model;
using HMI.Base;
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
{
@@ -18,29 +16,8 @@
    /// </summary>
    public partial class RoleManage : 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 RoleManageModel Model;
        private ILog log;
        #endregion
        public RoleManage()
@@ -60,26 +37,6 @@
        #region 属性
        #endregion
        public object Active()
        {
            return null;
        }
        public object DeActive()
        {
            return null;
        }
        public object Init()
        {
            return null;
        }
        public void OnTabChange(object sender, object args)
        {
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            try
@@ -87,48 +44,112 @@
                Button btn = (Button)sender;
                if (btn.Name == "addBtn")
                {
                    RoleModal modal = new RoleModal
                    try
                    {
                        Title = "新增角色",
                        Owner = Window.GetWindow(this),
                        sqliteHelper = Model.sqliteHelper
                    };
                    if (modal.Open(new RoleData()) == true)
                        RoleModal modal = new RoleModal
                        {
                            Title = "新增角色",
                            Owner = Window.GetWindow(this),
                            sqliteHelper = Model.sqliteHelper
                        };
                        if (modal.Open(new RoleData()) == true)
                        {
                            Model.LoadData();
                        }
                    }
                    catch (Exception ex)
                    {
                        Model.LoadData();
                        log.Error("Add Role Failed.", ex);
                        ToastHelper.Error(Window.GetWindow(this), $"新增失败!{ex.Message}");
                    }
                }
                else if (btn.Name == "refreshBtn")
                {
                    Model.LoadData();
                    try
                    {
                        Model.LoadData();
                    }
                    catch (Exception ex)
                    {
                        log.Error("Refresh Role Failed.", ex);
                        ToastHelper.Error(Window.GetWindow(this), $"刷新失败!{ex.Message}");
                    }
                }
                else if (btn.Name == "menuBtn")
                {
                    Model.LoadRelData((RoleData)btn.DataContext);
                    try
                    {
                        Model.LoadRelData((RoleData)btn.DataContext);
                    }
                    catch (Exception ex)
                    {
                        log.Error("Load Role-Menu Failed.", ex);
                        ToastHelper.Error(Window.GetWindow(this), $"刷新角色失败!{ex.Message}");
                    }
                }
                else if (btn.Name == "editBtn")
                {
                    RoleModal modal = new RoleModal
                    try
                    {
                        Title = "编辑角色",
                        Owner = Window.GetWindow(this),
                        sqliteHelper = Model.sqliteHelper
                    };
                    if (modal.Open((RoleData)btn.DataContext) == true)
                        RoleModal modal = new RoleModal
                        {
                            Title = "编辑角色",
                            Owner = Window.GetWindow(this),
                            sqliteHelper = Model.sqliteHelper
                        };
                        if (modal.Open((RoleData)btn.DataContext) == true)
                        {
                            Model.LoadData();
                        }
                    }
                    catch (Exception ex)
                    {
                        Model.LoadData();
                        log.Error("Edit Role Failed.", ex);
                        ToastHelper.Error(Window.GetWindow(this), $"编辑失败!{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), "请选择要删除的角色!");
                            return;
                        }
                        var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this),
                            $"确定删除选中的[{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), $"删除失败!{ex.Message}");
                    }
                }
                else if (btn.Name == "delBtn")
                {
                    try
                    {
                        Model.DelSingleData((RoleData)btn.DataContext);
                        var data = (RoleData)((Button)sender).DataContext;
                        var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this),
                            $"确定删除角色[{data.Name}]吗?该操作不可逆!");
                        if (res == MessageBoxResult.OK)
                        {
                            Model.DelSingleData(data);
                            Model.LoadData();
                        }
                    }
                    catch (Exception ex)
                    {
                        log.Error("Delete Role Failed.", ex);
                        Panuon.WPF.UI.Toast.Show((WindowX)Window.GetWindow(this), "删除失败", ToastPosition.Top);
                        Toast.Show((WindowX)Window.GetWindow(this), "删除失败", ToastPosition.Top);
                    }
                }
                else if (btn.Name == "saveMenuBtn")
@@ -136,24 +157,19 @@
                    try
                    {
                        Model.SaveRelData(Model.SelectedValue);
                        Panuon.WPF.UI.Toast.Show((WindowX)Window.GetWindow(this), "保存成功", ToastPosition.Top);
                        Toast.Show((WindowX)Window.GetWindow(this), "保存成功", ToastPosition.Top);
                    }
                    catch (Exception ex)
                    {
                        log.Error("Save Role-Menu Failed.", ex);
                        Panuon.WPF.UI.Toast.Show((WindowX)Window.GetWindow(this), "保存失败", ToastPosition.Top);
                        Toast.Show((WindowX)Window.GetWindow(this), "保存失败", ToastPosition.Top);
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error("123", ex);
                log.Error("Something Error...", ex);
            }
        }
        public void SetLogger(ILog logger)
        {
            this.log = logger;
        }
    }
}