/// <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()); }
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 })); }