Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
        /// <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);
            }
        }