public async Task <List <RouterDto> > GetRouters() { var currentUserId = AbpSession.UserId; if (currentUserId == null) { throw new UserFriendlyException("当前用户会话失效,请重新登录。"); } var currentUser = await _userRepository.FirstOrDefaultAsync(o => o.Id == currentUserId.Value); if (currentUser == null) { throw new UserFriendlyException("当前用户会话失效,请重新登录。"); } var routerDtos = new List <RouterDto>(); var routerDto = new RouterDto(); routerDto.Title = "首页"; routerDto.Key = ""; routerDto.Name = "index"; routerDto.Component = "BasicLayout"; if (currentUser.UserType == EnumUserType.Agent) { routerDto.Redirect = "/console/workplace"; } else { routerDto.Redirect = "/console/dashboard"; } routerDto.Children = new List <RouterDto>(); var routers = await _routerManager.GetRouters(); var parentRouters = routers.Where(o => string.IsNullOrWhiteSpace(o.ParentKey)).OrderBy(o => o.Sort).ToList(); foreach (var parentRouter in parentRouters) { var parentRouterDto = new RouterDto(); parentRouterDto.Title = parentRouter.Name; parentRouterDto.Key = parentRouter.Key; parentRouterDto.Component = parentRouter.Component; parentRouterDto.Icon = parentRouter.Icon; parentRouterDto.Children = new List <RouterDto>(); var children = routers.Where(o => o.ParentKey == parentRouter.Key).OrderBy(o => o.Sort).ToList(); foreach (var child in children) { var childRouterDto = new RouterDto(); childRouterDto.Title = child.Name; childRouterDto.Key = child.Key; childRouterDto.Icon = child.Icon; parentRouterDto.Children.Add(childRouterDto); } routerDto.Children.Add(parentRouterDto); } routerDtos.Add(routerDto); return(routerDtos); }
public ActionResult <BaseResponse> ModifyPermission(RouterDto request) { var entity = _mapper.Map <Router>(request); bool result; if (request.Id > 0) { result = _accountStoreService.UpdateRouter(entity); } else { entity.CreateTime = DateTime.Now; result = _accountStoreService.AddRouter(entity); } return(BaseResponse.GetResponse(result)); }
/// <summary> /// 菜单信息 /// </summary> /// <param name="iD"></param> /// <returns></returns> public Task <RouterDto> GetUserMenuList(long iD) { List <SysMenu> sysMenuList = _sysUserRepository.GetAll().Where(m => m.DeleteFlag == 0).ToList(); RouterDto result = new RouterDto { Data = new RouterInfo { Router = new List <MenuInfo>() } }; List <SysMenuDto> menuDtoList = AutoMapperHelper.MapToList <SysMenu, SysMenuDto>(sysMenuList).ToList(); //构造递归集合 List <SysMenuDto> res = Recursion(menuDtoList); List <MenuInfo> menuInfoList = BuilderVueRouter(res); result.Data.Router = menuInfoList; return(Task.FromResult(result)); }
public static RouterDto ToRouterDto(SysMenu topMenu, List <SysMenu> subMenus) { var dto = new RouterDto { Id = topMenu.Id, ParentId = 0, Component = !string.IsNullOrEmpty(topMenu.Component) ? topMenu.Component : string.Empty, Hidden = topMenu.Hidden, Name = topMenu.Name, Num = topMenu.Num, Path = !string.IsNullOrEmpty(topMenu.Url) ? topMenu.Url : string.Empty, Meta = new MetaDto { Icon = topMenu.Icon, Title = topMenu.Code }, Children = subMenus .Select(it => new RouterDto { Children = new List <RouterDto>(), Component = it.Component, Hidden = it.Hidden, Id = it.Id, Meta = new MetaDto { Icon = it.Icon, Title = it.Code }, Name = it.Name, Num = it.Num, ParentId = topMenu.Id, Path = it.Url }) .OrderBy(it => it.Num) .ToList() }; return(dto); }