using DevExpress.XtraEditors;
|
using Gs.DevApp.Entity;
|
using Gs.DevApp.ToolBox;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace Gs.DevApp.DevFrm.User
|
{
|
public partial class UserSelectRole : DevExpress.XtraEditors.XtraForm
|
{
|
private string _userGuid;
|
public UserSelectRole(string userGuid)
|
{
|
InitializeComponent();
|
this._userGuid = userGuid;
|
GetCheckList();
|
btnSave.Click += BtnSave_Click;
|
GetTree(_userGuid);
|
}
|
|
private void BtnSave_Click(object sender, EventArgs e)
|
{
|
if (string.IsNullOrEmpty(_userGuid))
|
{
|
ToolBox.MsgHelper.Warning("请先选择你要操作的用户!");
|
return;
|
}
|
if (!MsgHelper.AskQuestion("你选择了【" + ckList.CheckedItems.Count.ToString() + "】个角色,确定设置权限吗?"))
|
return;
|
System.Text.StringBuilder roleLst = new StringBuilder();
|
foreach (DataRowView box in ckList.CheckedItems)
|
{
|
if (roleLst.Length > 0)
|
roleLst.Append(",");
|
roleLst.Append(box.Row["guid"].ToString());
|
}
|
var _obj = new
|
{
|
userGuid = _userGuid,
|
roleLst = roleLst.ToString(),
|
};
|
string strJson = "";
|
try
|
{
|
strJson = UtilityHelper.HttpPost("", "MenuAction/SetRoleByUser", JsonConvert.SerializeObject(_obj));
|
ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson);
|
ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnData.outMsg);
|
this.Close();
|
}
|
catch (Exception ex)
|
{
|
ToolBox.MsgHelper.Warning("提示:" + ex.Message);
|
}
|
}
|
|
private void GetCheckList()
|
{
|
var _obj = new
|
{
|
userGuid = this._userGuid,
|
};
|
string strReturn = "";
|
try
|
{
|
strReturn = UtilityHelper.HttpPost("", "MenuAction/GetRoleByUser", JsonConvert.SerializeObject(_obj));
|
ReturnModel<DataTable> dd = UtilityHelper.GetNoPageTableByJson(strReturn);
|
DataTable dt = dd.rtnData;
|
this.ckList.DataSource = dt;
|
this.ckList.ValueMember = "guid";
|
this.ckList.DisplayMember = "roleName";
|
foreach (DataRow row in dt.Rows)
|
{
|
// 假设Condition是决定是否选中的字段
|
bool isChecked = (bool)row["isCk"]; // 转换为实际的类型
|
int index = ckList.FindString(row["roleName"].ToString());
|
if (index != ListBox.NoMatches)
|
{
|
ckList.SetItemChecked(index, isChecked);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
ToolBox.MsgHelper.Warning("提示:" + ex.Message);
|
}
|
}
|
|
|
private void GetTree(string userGuid)
|
{
|
trv.Nodes.Clear();
|
ImageList imageList = new ImageList();
|
imageList.Images.Add("icon0", Properties.Resources.publicfix_32x32);
|
imageList.Images.Add("icon1", Properties.Resources.addfooter_32x32);
|
imageList.Images.Add("icon2", Properties.Resources.listmultilevel_16x16);
|
imageList.Images.Add("icon3", Properties.Resources.addcalculatedfield_16x16);
|
trv.ImageList = imageList;
|
var _obj = new
|
{
|
userGuid = userGuid,
|
};
|
string strReturn = "";
|
try
|
{
|
strReturn = UtilityHelper.HttpPost("", "MenuAction/GetListByUser", JsonConvert.SerializeObject(_obj));
|
ReturnModel<PageListModel> dd = UtilityHelper.GetTableByJson(strReturn);
|
DataTable dt = dd.rtnData.list;
|
DataRow[] drGrp = dt.Select("upGuid='' or upGuid is null");
|
foreach (DataRow _dy in drGrp)
|
{
|
string _orgGuid = _dy["guid"].ToString() + "&";
|
TreeNode node = new TreeNode();//定义结点
|
node.Text = _dy["name"].ToString();//为结点赋值
|
node.Name = _dy["guid"].ToString();
|
node.ImageIndex = 0;
|
node.Checked = (_dy["isCk"].ToString() == "1" ? true : false);
|
DataRow[] drItem = dt.Select("upGuid='" + _dy["guid"].ToString() + "' and orgGuid='" + _dy["guid"].ToString() + "'");
|
foreach (DataRow _dy2 in drItem)
|
{
|
TreeNode node22 = new TreeNode();//定义结点
|
node22.Text = _dy2["name"].ToString();//为结点赋值
|
node22.Name = _orgGuid + _dy2["guid"].ToString();
|
node22.ImageIndex = 1;
|
node22.Checked = (_dy2["isCk"].ToString() == "1" ? true : false);
|
DataRow[] drItem33 = dt.Select("upGuid='" + _dy2["guid"].ToString() + "' and orgGuid='" + _dy["guid"].ToString() + "'");
|
foreach (DataRow _dy3 in drItem33)
|
{
|
TreeNode node33 = new TreeNode();//定义结点
|
node33.Text = _dy3["name"].ToString();//为结点赋值
|
node33.Name = _orgGuid + _dy3["guid"].ToString();
|
node33.ImageIndex = 2;
|
node33.Checked = (_dy3["isCk"].ToString() == "1" ? true : false);
|
DataRow[] drItem44 = dt.Select("upGuid='" + _dy3["guid"].ToString() + "' and orgGuid='" + _dy["guid"].ToString() + "'");
|
foreach (DataRow _dy4 in drItem44)
|
{
|
TreeNode node44 = new TreeNode();//定义结点
|
node44.Text = _dy4["name"].ToString();//为结点赋值
|
node44.Name = _orgGuid + _dy4["guid"].ToString();
|
node44.ImageIndex = 3;
|
node44.Checked = (_dy4["isCk"].ToString() == "1" ? true : false);
|
node33.Nodes.Add(node44);
|
}
|
node22.Nodes.Add(node33);
|
}
|
node22.Expand();
|
node.Nodes.Add(node22);
|
}
|
node.Expand();
|
trv.Nodes.Add(node);
|
|
}
|
}
|
catch (Exception ex)
|
{
|
ToolBox.MsgHelper.Warning("提示:" + ex.Message);
|
}
|
}
|
}
|
}
|