using System;
|
using System.Data;
|
using System.Text;
|
using System.Windows.Forms;
|
using DevExpress.XtraEditors;
|
using Gs.DevApp.Properties;
|
using Gs.DevApp.ToolBox;
|
using Newtonsoft.Json;
|
|
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);
|
}
|
}
|
|
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;
|
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);
|
}
|
}
|
}
|
}
|