123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- using ComponentFactory.Krypton.Toolkit;
- using NXWMS.Client.Model.AppModels.Condition.SysSettings;
- using NXWMS.Client.Model.AppModels.Result.SysSettings;
- using NXWMS.Client.Model.CoreModels;
- using NXWMS.Client.String.Enums;
- using NXWMS.Commons;
- using NXWMS.Services;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace NXWMS.Forms.SysSettings.ChildFrm
- {
- public partial class frmRoleEdit : KryptonForm
- {
- private EnumOperation _LastOperation;
- private int _selectRoleId;
- /// <summary>
- /// 菜单层级列表
- /// </summary>
- private List<MenuLevelResult> _menuLevelList;
- private RolePermissionResult _selectRolePermission;
- public List<MenuLevelResult> MenuLevelList { get => MenuLevelList1; set => MenuLevelList1 = value; }
- public EnumOperation LastOperation { get => _LastOperation; set => _LastOperation = value; }
- public int SelectRoleId { get => _selectRoleId; set => _selectRoleId = value; }
- public List<MenuLevelResult> MenuLevelList1 { get => _menuLevelList; set => _menuLevelList = value; }
- private int _selectMainMenuIndex;
- private int _selectMenuIndex;
- private int _selectFunctionIndex;
- public void InitControl()
- {
-
-
- //菜单列表添加
- treeViewMainMenu.Scrollable = true;
- treeViewMainMenu.ShowPlusMinus = true;
- treeViewMainMenu.ShowRootLines = true;
- treeViewMainMenu.Nodes.Clear();
- var menuList = MenuLevelList.Where((x, i) => MenuLevelList.FindIndex(z => z.MainMenuId == x.MainMenuId) == i).Distinct().ToList();
- foreach (var item in (from x in menuList
- select new
- { x.MainMenuId, x.MainMenuName, x.MainMenuCode, x.MainMenuOrder, x.MainMenuURL }).Distinct())
- {
- var newTreeNode = new TreeNode
- {
- Checked = true,
- Name = item.MainMenuId.ToString(),
- Text = item.MainMenuName,
- };
- newTreeNode.Checked = false;
- var f1 = treeViewMainMenu.Nodes.Add(newTreeNode);
- }
- treeViewMainMenu.ExpandAll();
- treeViewMainMenu.NodeMouseDoubleClick += new
- TreeNodeMouseClickEventHandler(TreeMainMenuNodeDoubleClick);
- txtRoleCode.SetControlBase(50);
- txtRoleName.SetControlBase(100);
-
- }
- /// <summary>
- /// 主菜单双击
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- public void TreeMainMenuNodeDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
- {
- var menuView = sender as KryptonTreeView;
- var selectedNode = menuView.SelectedNode;
- if (selectedNode == null)
- {
- return;
- }
- //菜单列表添加
- treeViewMenu.Scrollable = true;
- treeViewMenu.ShowPlusMinus = true;
- treeViewMenu.ShowRootLines = true;
- treeViewMenu.Nodes.Clear();
- _selectMainMenuIndex = e.Node.Index;
- foreach (var item in (from x in _menuLevelList.Where(m => m.MainMenuId == int.Parse(selectedNode.Name))
- select new
- { x.MenuCode, x.MenuName, x.MenuId, x.MenuOrder, x.MenuURL }).Distinct())
- {
- var newTreeNode = new TreeNode
- {
- Checked = true,
- Name = item.MenuId.ToString(),
- Text = item.MenuName,
- };
- newTreeNode.Checked = false;
- var f1 = treeViewMenu.Nodes.Add(newTreeNode);
- }
- treeViewMenu.ExpandAll();
- //授权打勾
- if (!_menuCheckList.Any())
- {
- _selectRolePermission = SysSettingsServices.roleService.GetPermissionInfo(new RolePermissionCondition
- {
- OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId,
- RoleId = _selectRoleId,
- }).Data;
- foreach (TreeNode item in treeViewMainMenu.Nodes)
- {
- item.Checked = false;
- }
- foreach (TreeNode item in treeViewMenu.Nodes)
- {
- item.Checked = false;
- }
- if (_selectRolePermission != null)
- {
- foreach (var item in _selectRolePermission.RoleMenuList.Where(m => m.MainMenuId != null).Distinct().ToList())
- {
- if (treeViewMainMenu.Nodes[item.MainMenuId.Value.ToString()] != null)
- {
- treeViewMainMenu.Nodes[item.MainMenuId.Value.ToString()].Checked = true;
- }
- if (treeViewMenu.Nodes[item.MainMenuId.Value.ToString()] != null)
- {
- treeViewMenu.Nodes[item.MainMenuId.Value.ToString()].Checked = true;
- }
- }
- }
- }
- else
- {
- foreach (TreeNode item in treeViewMenu.Nodes)
- {
- item.Checked = false;
- }
- foreach (var item in _menuCheckList)
- {
- if (treeViewMenu.Nodes[item.ToString()] != null)
- {
- treeViewMenu.Nodes[item.ToString()].Checked = true;
- }
- }
- }
- treeViewMenu.NodeMouseDoubleClick += new
- TreeNodeMouseClickEventHandler(TreeMenuNodeDoubleClick);
- }
- /// <summary>
- /// 菜单双击
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- public void TreeMenuNodeDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
- {
- var menuView = sender as KryptonTreeView;
- var selectedNode = menuView.SelectedNode;
- if (selectedNode == null)
- {
- return;
- }
- _selectMenuIndex = e.Node.Index;
- //菜单列表添加
- treeViewFunction.Scrollable = true;
- treeViewFunction.ShowPlusMinus = true;
- treeViewFunction.ShowRootLines = true;
- treeViewFunction.Nodes.Clear();
- foreach (var item in (from x in _menuLevelList.Where(m => m.MenuId == int.Parse(selectedNode.Name) && m.FunctionCode != null)
- select new
- { x.FunctionCode, x.FunctionName, x.FunctionId, x.FunctionOrder, x.FunctionURL }).Distinct())
- {
- var newTreeNode = new TreeNode
- {
- Checked = true,
- Name = item.FunctionId.ToString(),
- Text = item.FunctionName,
- };
- newTreeNode.Checked = false;
- var f1 = treeViewFunction.Nodes.Add(newTreeNode);
- }
- treeViewFunction.ExpandAll();
- foreach (TreeNode item in treeViewFunction.Nodes)
- {
- item.Checked = false;
- }
- //授权打勾
- if (!_menuCheckList.Any())
- {
- var menuList = _selectRolePermission;
- foreach (var item in menuList.RoleMenuList.Where(m => m.MainMenuId != null))
- {
- if (treeViewFunction.Nodes[item.MainMenuId.Value.ToString()] != null)
- {
- treeViewFunction.Nodes[item.MainMenuId.Value.ToString()].Checked = true;
- }
- }
- }
- else
- {
- foreach (var item in _menuCheckList)
- {
- if (treeViewFunction.Nodes[item.ToString()] != null)
- {
- treeViewFunction.Nodes[item.ToString()].Checked = true;
- }
- }
- }
- }
- public frmRoleEdit()
- {
- InitializeComponent();
- }
- private List<int> _menuCheckList = new List<int>();
- private void btnSave_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrWhiteSpace(txtRoleCode.Text))
- {
- KryptonMessageBox.Show($"请输入角色编码。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- if (string.IsNullOrWhiteSpace(txtRoleName.Text))
- {
- KryptonMessageBox.Show($"请输入角色名称。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- _menuCheckList = new List<int>();
- switch (LastOperation)
- {
- case EnumOperation.Add:
- var addResult = SysSettingsServices.roleService.Add(new RoleCondition
- {
- OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId,
- IsUsed = chkUse.Checked,
- RoleCode = txtRoleCode.Text,
- RoleName = txtRoleName.Text,
- Describe = richDescibe.Text,
- PermissionMenuIdList = GetPermissionMenuIdList(),
- });
- if (addResult.Status == OperateStatus.Success)
- {
- KryptonMessageBox.Show($"操作成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
- }
- else
- {
- KryptonMessageBox.Show($"操作失败!\r\n{addResult.Message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- break;
- case EnumOperation.Edit:
- var editResult = SysSettingsServices.roleService.Edit(new RoleCondition
- {
- OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId,
- IsUsed = chkUse.Checked,
- RoleCode = txtRoleCode.Text,
- RoleName = txtRoleName.Text,
- RoleId = SelectRoleId,
- Describe = richDescibe.Text,
- PermissionMenuIdList = GetPermissionMenuIdList(),
- });
- if (editResult.Status == OperateStatus.Success)
- {
- KryptonMessageBox.Show($"操作成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
- }
- else
- {
- KryptonMessageBox.Show($"操作失败!\r\n{editResult.Message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- break;
- }
- }
- private List<int> GetPermissionMenuIdList()
- {
- var permissionList = new List<int>();
- foreach (TreeNode item in treeViewMainMenu.Nodes)
- {
- if (item.Checked)
- {
- permissionList.Add(Convert.ToInt32(item.Name));
- }
- }
- foreach (TreeNode item in treeViewMenu.Nodes)
- {
- if (item.Checked)
- {
- permissionList.Add(Convert.ToInt32(item.Name));
- }
- }
- foreach (TreeNode item in treeViewFunction.Nodes)
- {
- if (item.Checked)
- {
- permissionList.Add(Convert.ToInt32(item.Name));
- }
- }
- return permissionList;
- }
- private void treeViewMainMenu_DoubleClick(object sender, EventArgs e)
- {
- }
- private void btnExit_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- }
- }
|