using DataEntity.Share; using HxEnum; using HxModel; using HxUserManagement.HxBLL; using HxUserManagement.Views; using NPOI.Util; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using XHandler.Class; using XHandler.View.User; using XImagingXhandler.XDAL; namespace XHandler.View { /// /// UserManagerment.xaml 的交互逻辑 /// public partial class UserManagerment : UserControl { public event EventHandler menuChanged; public event EventHandler closeEvent; private User.UserCenter userCenter = null; public static UserInfo currentUser = null; private User.AuthorityCenter authorityCenter = null; private MenuManagement menuManagement = null; public UserManagerment(string loginUserID) { InitializeComponent(); currentUser = UserDB.GetUserInfByUserId(loginUserID); } private void btnClose_Click(object sender, RoutedEventArgs e) { if (EventResponseController.Instance.CanExecute() == false) return; closeEvent?.Invoke(this, EventArgs.Empty); } private void rbUserCenter_Checked(object sender, RoutedEventArgs e) { gridContent.Children.Clear(); if (userCenter == null) { userCenter = new User.UserCenter(); userCenter.editEvent += UserCenter_editEvent; userCenter.resetPswdEvent += UserCenter_resetPswdEvent; gridContent.Children.Add(userCenter); } else gridContent.Children.Add(userCenter); btnNew.Visibility = Visibility.Visible; } private void UserCenter_editEvent(object sender, CustomRoutedEventArgs e) { string id = (string)e.param; User.EditUserInfo editUserInfo = new User.EditUserInfo(id); editUserInfo.closeEvent += EditUserInfo_closeEvent; editUserInfo.okEvent += EditUserInfo_okEvent; rootGrid.Children.Add(editUserInfo); } private void UserCenter_resetPswdEvent(object sender, CustomRoutedEventArgs e) { string id = (string)e.param; User.ResetPassword resetPassword = new User.ResetPassword(id); resetPassword.closeEvent += EditUserInfo_closeEvent; //editUserInfo.okEvent += EditUserInfo_okEvent; rootGrid.Children.Add(resetPassword); } private void EditUserInfo_okEvent(object sender, EventArgs e) { UIElement element = sender as UIElement; if (rootGrid.Children.Contains(element)) rootGrid.Children.Remove(element); userCenter.Refresh(); } private void EditUserInfo_closeEvent(object sender, EventArgs e) { UIElement element = sender as UIElement; if (rootGrid.Children.Contains(element)) rootGrid.Children.Remove(element); } private void EditAuthority_closeEvent(object sender, EventArgs e) { UIElement element = (UIElement)sender; if (rootGrid.Children.Contains(element)) rootGrid.Children.Remove(element); } private void rbRoleManage_Checked(object sender, RoutedEventArgs e) { gridContent.Children.Clear(); if (authorityCenter == null) { authorityCenter = new User.AuthorityCenter(); authorityCenter.editEvent += AuthorityCenter_editEvent; gridContent.Children.Add(authorityCenter); } else gridContent.Children.Add(authorityCenter); btnNew.Visibility = Visibility.Collapsed; } private void AuthorityCenter_editEvent(object sender, CustomRoutedEventArgs e) { string id = (string)e.param; User.EditAuthority editAuthority = new User.EditAuthority(id); editAuthority.closeEvent += EditAuthority_closeEvent; rootGrid.Children.Add(editAuthority); } private void btnNew_Click(object sender, RoutedEventArgs e) { if (EventResponseController.Instance.CanExecute() == false) return; User.EditUserInfo editUserInfo = new User.EditUserInfo(); editUserInfo.closeEvent += EditUserInfo_closeEvent; editUserInfo.okEvent += EditUserInfo_okEvent; rootGrid.Children.Add(editUserInfo); } private void UserControl_Loaded(object sender, RoutedEventArgs e) { string userid = UserDB.GetUserInfByUserName(Shared.User.username).id; if (userid == "20e617cd-4784-11ed-a82a-b445068d4036") { rbMenuManage.Visibility = Visibility.Visible; } else { rbMenuManage.Visibility = Visibility.Collapsed; } //所有菜单 List roleMenuAllList = UserDB.GetWholeRoleMenuByUserId(userid); //权限控制 var MenuUserManage = roleMenuAllList.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.MenuUserManage)); if (MenuUserManage != null) { bool isExistUserCenter = true; var SubMenuUserCenter = MenuUserManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuUserCenter)); if (SubMenuUserCenter != null) { rbUserCenter.Visibility = Visibility.Visible; rbUserCenter.IsChecked = true; } else { rbUserCenter.Visibility = Visibility.Collapsed; rbUserCenter.IsChecked = false; isExistUserCenter = false; } var SubMenuRoleManage = MenuUserManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuRoleManage)); if (SubMenuRoleManage != null) { rbRoleManage.Visibility = Visibility.Visible; rbRoleManage.IsChecked = true; } else { rbRoleManage.Visibility = Visibility.Collapsed; rbRoleManage.IsChecked = false; } if(isExistUserCenter) { rbUserCenter.IsChecked = true; } } } private void rbMenuManage_Checked(object sender, RoutedEventArgs e) { gridContent.Children.Clear(); if (menuManagement == null) { menuManagement = new MenuManagement(); //menuManagement.editEvent += UserCenter_editEvent; //menuManagement.menuChanged += MenuManagement_menuChanged; gridContent.Children.Add(menuManagement); } else gridContent.Children.Add(menuManagement); btnNew.Visibility = Visibility.Collapsed; } private void MenuManagement_menuChanged(object sender, EventArgs e) { menuChanged?.Invoke(this, EventArgs.Empty); } } }