fix: 按钮类型菜单太多时获取菜单列表慢的问题
This commit is contained in:
parent
74d4253501
commit
c82f92eb3b
@ -51,30 +51,13 @@ public class SysMenuService : IDynamicApiController, ITransient
|
|||||||
{
|
{
|
||||||
var menuIdList = await GetMenuIdList();
|
var menuIdList = await GetMenuIdList();
|
||||||
var menuTree = await _sysMenuRep.AsQueryable()
|
var menuTree = await _sysMenuRep.AsQueryable()
|
||||||
.Where(u => u.Status == StatusEnum.Enable)
|
.Where(u => u.Type != MenuTypeEnum.Btn && u.Status == StatusEnum.Enable)
|
||||||
.OrderBy(u => new { u.OrderNo, u.Id })
|
.OrderBy(u => new { u.OrderNo, u.Id })
|
||||||
.Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray());
|
.Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray());
|
||||||
DeleteBtnFromMenuTree(menuTree);
|
|
||||||
return menuTree.Adapt<List<MenuOutput>>();
|
return menuTree.Adapt<List<MenuOutput>>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 删除登录菜单树里面的按钮
|
|
||||||
/// </summary>
|
|
||||||
private static void DeleteBtnFromMenuTree(List<SysMenu> menuList)
|
|
||||||
{
|
|
||||||
if (menuList == null) return;
|
|
||||||
for (var i = menuList.Count - 1; i >= 0; i--)
|
|
||||||
{
|
|
||||||
var menu = menuList[i];
|
|
||||||
if (menu.Type == MenuTypeEnum.Btn)
|
|
||||||
menuList.Remove(menu);
|
|
||||||
else if (menu.Children.Count > 0)
|
|
||||||
DeleteBtnFromMenuTree(menu.Children);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取菜单列表 🔖
|
/// 获取菜单列表 🔖
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user