/// <summary> /// 保存模块功能分配 /// </summary> /// <param name="jsonStr"></param> /// <param name="key"></param> public void SaveRoles() { try { string jsonStr = Request["json"]; string key = Request["key"]; BllSysRoleFun bll = new BllSysRoleFun(); //保存用户角色菜单信息 string[] _str = jsonStr.Split(','); StringBuilder sb = new StringBuilder(); for (int i = 0; i < _str.Length; i++) { string[] str = _str[i].Split('|'); string funId = ""; string btnId = ""; if (str.Length > 1) //存在按钮 { funId = str[1]; btnId = str[0]; } else if (str.Length == 1) //模块链接没有按钮 { funId = str[0]; } var model = new ModSysRoleFun() { Id = Guid.NewGuid().ToString(), RoleId = key, FunId = funId, BtnId = btnId, UniteId = _str[i], //组合键 CreaterId = CurrentMaster.Id, CreaterName = CurrentMaster.UserName, CId = CurrentMaster.Cid }; sb.Append(bll.InsertRole(model)); sb.AppendLine(); } if (bll.InsertRoleByRoleId(key, sb.ToString()) > 0) { json.success = true; SearchClidRole(key); } else { json.success = false; } } catch (Exception ex) { json.success = false; json.msg = ex.Message; } WriteJsonToPage(json.ToString()); }
/// <summary> /// 获取子节点 /// </summary> /// <param name="parDs"></param> /// <param name="ds"></param> /// <returns></returns> public List <Hashtable> GetChildNodes(DataTable parDs, DataTable ds) { //表明该节点已经没有子节点呢 if (ds.Rows.Count == 0) { return(null); } else { DataView dv = parDs.DefaultView; List <Hashtable> hashList = new List <Hashtable>(); for (int i = 0; i < ds.Rows.Count; i++) { Hashtable ht = new Hashtable(); ht.Add("id", ds.Rows[i]["id"].ToString()); ht.Add("text", ds.Rows[i]["text"].ToString()); ht.Add("iconCls", ds.Rows[i]["iconCls"].ToString()); ht.Add("expanded", true); //查询子节点 dv.RowFilter = "ParentID='" + ds.Rows[i]["id"].ToString() + "'"; DataTable childSet = dv.ToTable(); if (childSet.Rows.Count > 0) { ht.Add("leaf", false); ht.Add("children", GetChildNodes(parDs, childSet)); } else { if (Convert.ToBoolean(ds.Rows[i]["isChild"].ToString()))//叶子节点需加上复选框 { //根据用户角色id查询使用权限 DataTable mySelectFun = new BllSysRoleFun().GetSelectFun(ds.Rows[i]["id"].ToString(), _key); int count = 0; foreach (DataRow prow in mySelectFun.Rows) { if (ds.Rows[i]["id"].ToString() == prow["FunId"].ToString()) { count++; ht.Add("check", true); break; } } if (count <= 0) { ht.Add("check", false); } bool HasBtns = true; //该链接是否存在按钮 ht.Add("children", getBtns(ds.Rows[i]["id"].ToString(), mySelectFun, ref HasBtns)); //获取页面下的按钮信息 if (HasBtns) { ht.Add("leaf", false); } else { ht.Add("leaf", true); } } } hashList.Add(ht); } return(hashList); } }