示例#1
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public string Save(Sys_MenuM model, string Function_ID)
        {
            if (model.Menu_ID.ToGuid() == Guid.Empty)
            {
                model.Menu_ID = db.Add(model, li).ToGuid();
                if (model.Menu_ID.ToGuid().Equals(Guid.Empty))
                {
                    throw new MessageBox(db.ErrorMessge);
                }
            }
            else
            {
                if (!db.EditById <Sys_MenuM>(model, li))
                {
                    throw new MessageBox(db.ErrorMessge);
                }
            }

            //删除菜单的功能
            if (!db.Delete <Sys_MenuFunctionM>(w => w.MenuFunction_MenuID == model.Menu_ID.ToGuid(), li))
            {
                throw new MessageBox(db.ErrorMessge);
            }

            db.JsonToList <Sys_FunctionM>(Function_ID).ToList().ForEach(item =>
            {
                var funcid = db.Add(new Sys_MenuFunctionM()
                {
                    MenuFunction_MenuID     = model.Menu_ID.ToGuid(),
                    MenuFunction_FunctionID = item.Function_ID.ToGuid(),
                }, li);
                if (funcid.ToGuid() == Guid.Empty)
                {
                    throw new MessageBox(db.ErrorMessge);
                }
            });

            if (!db.Commit(li))
            {
                throw new MessageBox(db.ErrorMessge);
            }

            return(model.Menu_ID.ToGuidStr());
        }
示例#2
0
        private void FindChildMenu(List <Sys_MenuM> menu_list, List <Sys_RoleMenuFunctionM> trmf_list, List <Sys_FunctionM> tf_list, List <Sys_MenuFunctionM> tmf_list, Sys_MenuM menu, Guid roleid, List <Dictionary <string, object> > list)
        {
            var dic = new Dictionary <string, object>();

            var _paret_menu_list = menu_list.FindAll(item => item.Menu_ParentID != null && item.Menu_ParentID.Equals(menu.Menu_ID));

            for (int i = _paret_menu_list.Count - 1; i >= 0; i--)
            {
                var _child_menu_list = menu_list.FindAll(x => x.Menu_ParentID != null && x.Menu_ParentID.Equals(_paret_menu_list[i].Menu_ID));
                //判断是否有子集
                if (_child_menu_list.Count > 0)
                {
                    dic = new Dictionary <string, object>();
                    dic.Add("name", _paret_menu_list[i].Menu_Name + "(" + _paret_menu_list[i].Menu_Num + ")");
                    dic.Add("id", _paret_menu_list[i].Menu_ID);
                    dic.Add("pId", _paret_menu_list[i].Menu_ParentID);
                    dic.Add("num", _paret_menu_list[i].Menu_Num);
                    dic.Add("ur", _paret_menu_list[i].Menu_Url);
                    dic.Add("tag", null);
                    dic.Add("checked", false);
                    list.Add(dic);
                    this.FindChildMenu(menu_list, trmf_list, tf_list, tmf_list, _paret_menu_list[i], roleid.ToGuid(), list);
                }
                else
                {
                    if (tmf_list.FindAll(val => val.MenuFunction_MenuID.Equals(_paret_menu_list[i].Menu_ID)).Count == 0)//判断该菜单是否有 勾选了功能 如果没有则删除
                    {
                        _paret_menu_list.RemoveAt(i);
                        continue;
                    }

                    dic = new Dictionary <string, object>();
                    dic.Add("name", _paret_menu_list[i].Menu_Name + "(" + _paret_menu_list[i].Menu_Num + ")");
                    dic.Add("id", _paret_menu_list[i].Menu_ID);
                    dic.Add("pId", _paret_menu_list[i].Menu_ParentID);
                    dic.Add("num", _paret_menu_list[i].Menu_Num);
                    dic.Add("ur", _paret_menu_list[i].Menu_Url);
                    dic.Add("tag", null);
                    dic.Add("checked", false);
                    list.Add(dic);


                    //找出该菜单下的功能和选中的功能
                    tf_list.ForEach(a =>
                    {
                        if (tmf_list.FindAll(val => val.MenuFunction_FunctionID.Equals(a.Function_ID) &&
                                             val.MenuFunction_MenuID.Equals(_paret_menu_list[i].Menu_ID)).Count > 0)
                        {
                            dic = new Dictionary <string, object>();
                            dic.Add("name", a.Function_Name);
                            dic.Add("id", a.Function_ID);
                            dic.Add("pId", _paret_menu_list[i].Menu_ID);
                            dic.Add("num", a.Function_Num);
                            dic.Add("ur", null);
                            dic.Add("tag", "fun");
                            //判断该功能是否选中
                            var ischecked = trmf_list.Find(x => x.RoleMenuFunction_FunctionID.Equals(a.Function_ID) && x.RoleMenuFunction_MenuID.Equals(_paret_menu_list[i].Menu_ID) && x.RoleMenuFunction_RoleID.Equals(roleid.ToGuid()));
                            if (ischecked == null)
                            {
                                dic.Add("checked", false);
                            }
                            else
                            {
                                dic.Add("checked", true);
                            }
                            list.Add(dic);
                        }
                    });
                }
            }
        }
 public IActionResult Save(Sys_MenuM model, string Function_ID)
 {
     this.KeyID = _Sys_MenuBL.Save(model, Function_ID);
     return(Json(new { status = 1, ID = KeyID }));
 }