/// <summary> /// 获取所有数据列表 /// </summary> /// <returns></returns> public List <Base_SysNavigationDto> GetMenuTrees() { var q = GetIQueryable().OrderBy(c => c.SortNum).ToList(); var topNav = q.Where(c => string.IsNullOrEmpty(c.ParentId)).ToList(); var treeNav = Base_UserBusiness.navigationDtos(q, topNav); Base_SysNavigationDto sysnav = new Base_SysNavigationDto { id = topNavId, label = "顶级菜单", children = treeNav }; var listData = new List <Base_SysNavigationDto>(); listData.Add(sysnav); return(listData); }
/// <summary> /// 递归循环出一个菜单树 /// 无任何值获取,作为静态使用 /// </summary> /// <param name="base_SysNavigationsAll">全部的数据</param> /// <param name="base_SysNavigations">只包含顶级的数据</param> /// <returns></returns> public static List <Base_SysNavigationDto> navigationDtos(List <Base_SysNavigation> base_SysNavigationsAll, List <Base_SysNavigation> base_SysNavigations) { List <Base_SysNavigationDto> base_SysNavigationDto = new List <Base_SysNavigationDto>(); foreach (var item in base_SysNavigations) { //先判断这条数据有没有子级 var isHaveChilds = base_SysNavigationsAll.Where(c => c.ParentId == item.Id).ToList(); if (isHaveChilds.Count() > 0) { Base_SysNavigationDto sysnav = new Base_SysNavigationDto { id = item.Id, parentId = item.ParentId, path = item.Path, title = item.NavName, icon = item.Icon, iconSvg = item.IconSvg, label = item.NavName }; sysnav.children = navigationDtos(base_SysNavigationsAll, isHaveChilds); base_SysNavigationDto.Add(sysnav); } else { Base_SysNavigationDto sysnav = new Base_SysNavigationDto { id = item.Id, parentId = item.ParentId, path = item.Path, title = item.NavName, icon = item.Icon, iconSvg = item.IconSvg, label = item.NavName }; base_SysNavigationDto.Add(sysnav); } } return(base_SysNavigationDto); }