示例#1
0
        /// <summary>
        /// 获取子菜单,递归调用
        /// </summary>
        /// <param name="data"></param>
        /// <param name="parentId">父级Id</param>
        /// <returns></returns>
        private List <MenuTreeTableOutputDto> GetSubMenus(List <Menu> data, string parentId)
        {
            List <MenuTreeTableOutputDto> list = new List <MenuTreeTableOutputDto>();
            MenuTreeTableOutputDto        menuTreeTableOutputDto = new MenuTreeTableOutputDto();
            var ChilList = data.FindAll(t => t.ParentId == parentId);

            foreach (Menu entity in ChilList)
            {
                menuTreeTableOutputDto          = entity.MapTo <MenuTreeTableOutputDto>();
                menuTreeTableOutputDto.Children = GetSubMenus(data, entity.Id).OrderBy(t => t.SortCode).MapTo <MenuTreeTableOutputDto>();
                list.Add(menuTreeTableOutputDto);
            }
            return(list);
        }
示例#2
0
        /// <summary>
        /// 获取功能菜单适用于Vue 树形列表
        /// </summary>
        /// <param name="systemTypeId">子系统Id</param>
        /// <returns></returns>
        public async Task <List <MenuTreeTableOutputDto> > GetAllMenuTreeTable(string systemTypeId)
        {
            string where = "1=1";
            List <MenuTreeTableOutputDto> reslist = new List <MenuTreeTableOutputDto>();

            if (!string.IsNullOrEmpty(systemTypeId))
            {
                IEnumerable <Menu> elist = await _MenuRepository.GetListWhereAsync("SystemTypeId='" + systemTypeId + "'");

                List <Menu> list        = elist.OrderBy(t => t.SortCode).ToList();
                List <Menu> oneMenuList = list.FindAll(t => t.ParentId == "");
                foreach (Menu item in oneMenuList)
                {
                    MenuTreeTableOutputDto menuTreeTableOutputDto = new MenuTreeTableOutputDto();
                    menuTreeTableOutputDto          = item.MapTo <MenuTreeTableOutputDto>();
                    menuTreeTableOutputDto.Children = GetSubMenus(list, item.Id).ToList <MenuTreeTableOutputDto>();
                    reslist.Add(menuTreeTableOutputDto);
                }
            }
            else
            {
                IEnumerable <SystemType> listSystemType = await systemTypeRepository.GetListWhereAsync(where);

                foreach (SystemType systemType in listSystemType)
                {
                    MenuTreeTableOutputDto menuTreeTableOutputDto = new MenuTreeTableOutputDto();
                    menuTreeTableOutputDto.Id          = systemType.Id;
                    menuTreeTableOutputDto.FullName    = systemType.FullName;
                    menuTreeTableOutputDto.EnCode      = systemType.EnCode;
                    menuTreeTableOutputDto.UrlAddress  = systemType.Url;
                    menuTreeTableOutputDto.EnabledMark = systemType.EnabledMark;

                    menuTreeTableOutputDto.SystemTag = true;

                    IEnumerable <Menu> elist = await _MenuRepository.GetListWhereAsync("SystemTypeId='" + systemType.Id + "'");

                    if (elist.Count() > 0)
                    {
                        List <Menu> list = elist.OrderBy(t => t.SortCode).ToList();
                        menuTreeTableOutputDto.Children = GetSubMenus(list, "").ToList <MenuTreeTableOutputDto>();
                    }
                    reslist.Add(menuTreeTableOutputDto);
                }
            }
            return(reslist);
        }