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; using YX.BLL; using YX.Entity; namespace YX { public partial class FrmRoleEdit : Form { SystemMenu_Bll menu_bll = new SystemMenu_Bll(); SystemRole_Bll role_bll = new SystemRole_Bll(); OperationType type; FrmRole _frmRole; string RoleID = ""; public FrmRoleEdit(FrmRole frmRole) { InitializeComponent(); _frmRole = frmRole; type = OperationType.Add; this.Text = "角色管理-添加"; com_ParentId.DataSource = role_bll.GetRoleParentId(); com_ParentId.DisplayMember = "Roles_Name"; com_ParentId.ValueMember = "Roles_ID"; } public FrmRoleEdit(FrmRole frmRole,ref DataGridViewRow dvr) { InitializeComponent(); _frmRole = frmRole; type = OperationType.Edit; this.Text = "角色管理-修改"; com_ParentId.DataSource = role_bll.GetRoleParentId(); com_ParentId.DisplayMember = "Roles_Name"; com_ParentId.ValueMember = "Roles_ID"; RoleID = dvr.Cells["Roles_ID"].Value.ToString(); txt_RoleName.Text= dvr.Cells["Roles_Name"].Value.ToString(); txt_RoleRemark.Text= dvr.Cells["Roles_Remark"].Value==null?"": dvr.Cells["Roles_Remark"].Value.ToString(); txt_SortCode.Text= dvr.Cells["SortCode"].Value.ToString(); com_ParentId.SelectedValue= dvr.Cells["ParentId"].Value.ToString(); } private void FrmRoleEdit_Load(object sender, EventArgs e) { BindRoleRightTreeView(); if (tree_RoleRight.Nodes.Count > 0) { tree_RoleRight.Nodes[0].Expand(); } } private void btn_concel_Click(object sender, EventArgs e) { this.Close(); } #region 角色权限 /// /// 用户权限菜单树列表 /// public void BindRoleRightTreeView() { try { this.tree_RoleRight.ImageList = imageList1; this.tree_RoleRight.Nodes.Clear(); var list = menu_bll.GetSysMenus(); var role_right_list = menu_bll.GetRoleRightByCondition(o => o.Base_Roles.Roles_ID == RoleID); var parents = list.Where(o => o.ParentId == "0"); foreach (var item in parents) { TreeNode tn = new TreeNode(); tn.Text = item.Menu_Name; tn.Tag = item.Menu_Id; tn.ImageIndex = item.Menu_Img == null ? 0 : item.Menu_Img.Value; foreach (var role_right in role_right_list) { if (item.Menu_Id == role_right.Menu_Id) { tn.Checked = true; } } RoleRightFillTree(tn, list, role_right_list); tree_RoleRight.Nodes.Add(tn); } } catch (Exception) { throw; } } private void RoleRightFillTree(TreeNode node, List list, List role_right_list) { var childs = list.Where(o => o.ParentId == node.Tag.ToString()); if (childs.Count() > 0) { foreach (var item in childs) { TreeNode tnn = new TreeNode(); tnn.Text = item.Menu_Name; tnn.Tag = item.Menu_Id; tnn.ImageIndex = item.Menu_Img == null ? 0 : item.Menu_Img.Value; foreach (var role_right in role_right_list) { if (item.Menu_Id == role_right.Menu_Id) { tnn.Checked = true; } } if (item.ParentId == node.Tag.ToString()) { RoleRightFillTree(tnn, list, role_right_list); } node.Nodes.Add(tnn); } } } #endregion #region 保存 private void btn_save_Click(object sender, EventArgs e) { try { Base_Roles roles = new Base_Roles(); if (string.IsNullOrEmpty(RoleID)) { roles.CreateDate = DateTime.Now; roles.CreateUserId = FrmLogin.LoginUserID; roles.CreateUserName = FrmLogin.loginUserName; roles.Roles_ID = Guid.NewGuid().ToString(); } else { roles.ModifyDate = DateTime.Now; roles.ModifyUserId = FrmLogin.LoginUserID; roles.ModifyUserName = FrmLogin.loginUserName; roles.Roles_ID = RoleID; } RoleRightList.Clear(); CheckRoleRightTreeViewNode(tree_RoleRight.Nodes); roles.Base_RoleRight = RoleRightList; roles.ParentId = com_ParentId.SelectedValue.ToString(); roles.Roles_Name = txt_RoleName.Text; roles.Roles_Remark = txt_RoleRemark.Text; roles.SortCode = int.Parse(txt_SortCode.Text); int isOk = 0; if (type == OperationType.Add) { isOk = role_bll.AddRoles(roles); } else if (type == OperationType.Edit) { isOk = role_bll.UpdateRoles(roles); } if (isOk > 0) { MessageBox.Show("保存成功!"); this.Close(); } else { MessageBox.Show("保存失败!"); } } catch (Exception ex) { System_Bll.WriteLogToDB(new Entity.Base_Log { CreateUserID = FrmLogin.LoginUserID, CreateUserName = FrmLogin.loginUserName, LocalIP = FrmLogin.LocalIP, LogMessage = ex.Message, Type = "系统错误!", ClassName = typeof(FrmRoleEdit).ToString() }); MessageBox.Show(ex.Message); } } List RoleRightList = new List(); /// /// 遍历角色权限选中节点 /// /// public void CheckRoleRightTreeViewNode(TreeNodeCollection node) { foreach (TreeNode n in node) { if (n.Checked) { RoleRightList.Add(new Base_RoleRight { RoleRight_ID = Guid.NewGuid().ToString(), Menu_Id = n.Tag.ToString(), CreateUserName = FrmLogin.loginUserName, CreateUserId = FrmLogin.LoginUserID, CreateDate = DateTime.Now }); } CheckRoleRightTreeViewNode(n.Nodes); } } #endregion } }