/* * var _menus = { * "menus": [ * { * "menuid": "1", "icon": "icon-sys", "menuname": "下载管理", * "menus": [{ "menuname": "软件下载", "icon": "icon-set", "url": "/Back/Download/Index" } * ] * }, { * "menuid": "2", "icon": "icon-sys", "menuname": "内容管理", * "menus": [ * { "menuname": "经典案例类别", "icon": "icon-set", "url": "/Back/AnLiType/Index" }, * { "menuname": "经典案例列表", "icon": "icon-set", "url": "/Back/AnLi/Index" }, * { "menuname": "常见问题", "icon": "icon-set", "url": "/Back/Question/Index" }, * { "menuname": "问题反馈", "icon": "icon-set", "url": "/Back/FanKui/Index" } * ] * }, { * "menuid": "3", "icon": "icon-sys", "menuname": "首页管理", * "menus": [ * { "menuname": "导航列表", "icon": "icon-set", "url": "/Back/DaoHang/Index" }, * { "menuname": "首页说明列表", "icon": "icon-set", "url": "/Back/HomeInfo/Index" } * ] * }, { * "menuid": "3", "icon": "icon-sys", "menuname": "产品介绍管理", * "menus": [ * { "menuname": "产品介绍列表", "icon": "icon-set", "url": "/Back/Product/Index" }, * ] * }, { * "menuid": "4", "icon": "icon-sys", "menuname": "系统管理", * "menus": [ * { "menuname": "用户管理", "icon": "icon-set", "url": "/Back/User/Index" }, * { "menuname": "菜单权限管理", "icon": "icon-set", "url": "/Back/Menue/Index" }, * { "menuname": "系统日志", "icon": "icon-set", "url": "/Back/UserLog/Index" } * ] * }, * ] * };*/ public ActionResult GetTree(long Rid) { //取得角色下的所有菜单 BaseDal <rolemenue> rmDal = new BaseDal <rolemenue>(); var list = rmDal.GetListTopN(q => q.Rid == Rid, "Id", true, 0).Select(q => q.Mid); BaseDal <menue> mdal = new BaseDal <menue>(); List <HomeTree> trees = new List <HomeTree>(); List <menue> all = mdal.GetListTopN(q => true, "Id", true, 0).ToList(); //根节点 menue root = all.Where(q => q.ParentId == 0).FirstOrDefault(); all = all.Where(q => list.Contains(q.Id)).ToList(); //一级子几点 List <menue> _menus = all.Where(q => q.ParentId == root.Id).ToList(); //菜单表转成 HomeTree 格式 添加集合 foreach (var menue in _menus) { trees.Add(GetDiGuiTree(menue, all)); } // 权限设置 BaseDal <rolepermission> rpDal = new BaseDal <rolepermission>(); var vrlist = rpDal.GetListTopN(q => q.Rid == Rid, "Id", true, 0).Select(q => q.Pid).ToList(); BaseDal <permission> pDal = new BaseDal <permission>(); var listpermission = pDal.GetListTopN(q => true, "Id", true, 0).ToList(); var btnquanxian = listpermission.Where(q => vrlist.Contains(q.Id)).Select(q => q.SmallName).ToList(); CacheHelper.SetCache(base.UserId, btnquanxian, 60 * 24); return(Json(trees)); }
/// <summary> /// menue 转换成 tree格式数据 /// </summary> /// <param name="en"></param> /// <returns></returns> public HomeTree ConvertEnToNode(menue en) { HomeTree Node = new HomeTree() { menuid = en.Id, icon = en.Icon, menuname = en.MenueName, url = en.Url }; return(Node); }
/// <summary> /// 递归获取数据 /// </summary> /// <param name="dep"></param> /// <returns></returns> public HomeTree GetDiGuiTree(menue en, List <menue> all) { HomeTree thisNode = ConvertEnToNode(en); //获取ParentId等于Id的子节点 var list = all.Where(q => q.ParentId == en.Id).OrderBy(q => q.OrderNum).ToList(); if (list.Count > 0) { thisNode.menus = new List <HomeTree>(); foreach (var item in list) { //递归子节点 thisNode.menus.Add(GetDiGuiTree(item, all)); } } return(thisNode); }