From b62971d2d58e39b7c938029116bc063eaf46b728 Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期一, 30 六月 2025 17:41:10 +0800 Subject: [PATCH] bug --- DevApp/Gs.DevApp/DevFrm/User/UserSelectRole.cs | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 173 insertions(+), 0 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/User/UserSelectRole.cs b/DevApp/Gs.DevApp/DevFrm/User/UserSelectRole.cs new file mode 100644 index 0000000..92979ef --- /dev/null +++ b/DevApp/Gs.DevApp/DevFrm/User/UserSelectRole.cs @@ -0,0 +1,173 @@ +锘縰sing DevExpress.XtraEditors; +using Gs.DevApp.Properties; +using Gs.DevApp.ToolBox; +using Newtonsoft.Json; +using System; +using System.Data; +using System.Text; +using System.Windows.Forms; + +namespace Gs.DevApp.DevFrm.User +{ + public partial class UserSelectRole : XtraForm + { + private readonly string _userGuid; + + public UserSelectRole(string userGuid) + { + InitializeComponent(); + _userGuid = userGuid; + GetCheckList(); + btnSave.Click += BtnSave_Click; + GetTree(_userGuid); + } + + private void BtnSave_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(_userGuid)) + { + MsgHelper.Warning("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勭敤鎴凤紒"); + return; + } + + if (!MsgHelper.AskQuestion("浣犻�夋嫨浜嗐��" + ckList.CheckedItems.Count + + "銆戜釜瑙掕壊锛岀‘瀹氳缃潈闄愬悧锛�")) + return; + var roleLst = new StringBuilder(); + foreach (DataRowView box in ckList.CheckedItems) + { + if (roleLst.Length > 0) + roleLst.Append(","); + roleLst.Append(box.Row["guid"]); + } + + var _obj = new + { + userGuid = _userGuid, + roleLst = roleLst.ToString() + }; + var strJson = ""; + try + { + strJson = UtilityHelper.HttpPost("", "Role/SetUserRole", + JsonConvert.SerializeObject(_obj)); + var _rtn = UtilityHelper.ReturnToDynamic(strJson); + MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnData.outMsg); + Close(); + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + /// <summary> + /// 璇诲彇瑙掕壊鍒楄〃 + /// </summary> + private void GetCheckList() + { + var _obj = new + { + userGuid = _userGuid + }; + var strReturn = ""; + try + { + strReturn = UtilityHelper.HttpPost("", "Role/GetUserRole", + JsonConvert.SerializeObject(_obj)); + var dd = UtilityHelper.ReturnToList(strReturn); + var dt = dd.rtnData; + if (dt == null) + return; + ckList.DataSource = dt; + ckList.ValueMember = "guid"; + ckList.DisplayMember = "roleName"; + foreach (DataRow row in dt.Rows) + { + // 鍋囪Condition鏄喅瀹氭槸鍚﹂�変腑鐨勫瓧娈� + var isChecked = (bool)row["isCk"]; // 杞崲涓哄疄闄呯殑绫诲瀷 + var index = ckList.FindString(row["roleName"].ToString()); + if (index != ListBox.NoMatches) + ckList.SetItemChecked(index, isChecked); + } + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + + + /// <summary> + /// 鏌ョ湅鐢ㄦ埛鐨勬潈闄愰泦鍚� + /// </summary> + /// <param name="userGuid"></param> + private void GetTree(string userGuid) + { + trv.Nodes.Clear(); + var imageList = new ImageList(); + imageList.Images.Add("icon0", Resources.addfooter_32x32); + imageList.Images.Add("icon1", Resources.listmultilevel_16x16); + imageList.Images.Add("icon2", Resources.addcalculatedfield_16x16); + // trv.ImageList = imageList; + var _obj = new + { + userGuid + }; + var strReturn = ""; + try + { + strReturn = UtilityHelper.HttpPost("", "Role/GetUserMenuAction", + JsonConvert.SerializeObject(_obj)); + var dd = UtilityHelper.ReturnToTablePage(strReturn); + var dt = dd.rtnData.list; + var drGrp = dt.Select("upGuid='' or upGuid is null"); + + // 浣跨敤DefaultView.Sort瀵圭瓫閫夊悗鐨勭粨鏋滆繘琛屾帓搴� + DataTable sortedTable = drGrp.CopyToDataTable(); + sortedTable.DefaultView.Sort = "idx ASC"; + DataTable result = sortedTable.DefaultView.ToTable(); + var _gou = "鉁� "; + foreach (DataRow _dy in result.Rows) + { + var node = new TreeNode(); //瀹氫箟缁撶偣 + node.Text = (_dy["isCk"].ToString() == "1" ? _gou : "") + + _dy["name"]; //涓虹粨鐐硅祴鍊� + node.Name = _dy["guid"].ToString(); + node.ImageIndex = 0; + node.Checked = _dy["isCk"].ToString() == "1" ? true : false; + var drItem = dt.Select("upGuid='" + _dy["guid"] + "'"); + foreach (var _dy2 in drItem) + { + var node22 = new TreeNode(); //瀹氫箟缁撶偣 + node22.Text = + (_dy2["isCk"].ToString() == "1" ? _gou : "") + + _dy2["name"]; //涓虹粨鐐硅祴鍊� + node22.Name = _dy2["guid"].ToString(); + node22.ImageIndex = 1; + node22.Checked = _dy2["isCk"].ToString() == "1" ? true : false; + var drItem33 = dt.Select("upGuid='" + _dy2["guid"] + "'"); + foreach (var _dy3 in drItem33) + { + var node33 = new TreeNode(); //瀹氫箟缁撶偣 + node33.Text = + (_dy3["isCk"].ToString() == "1" ? _gou : "") + + _dy3["name"]; //涓虹粨鐐硅祴鍊� + node33.Name = _dy3["guid"].ToString(); + node33.ImageIndex = 2; + node33.Checked = _dy3["isCk"].ToString() == "1" ? true : false; + node22.Nodes.Add(node33); + } + node22.Expand(); + node.Nodes.Add(node22); + } + node.Expand(); + trv.Nodes.Add(node); + } + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + } +} \ No newline at end of file -- Gitblit v1.9.3