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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        /// <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));
        }
Ejemplo n.º 4
0
        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);
        }