/// <summary>
/// 创建顶层菜单集合
/// </summary>
/// <param name="menuItms">所有菜单集合</param>
/// <returns>顶层菜单集合</returns>
public IList<Sys_MenuItm> CreateTopMenuTree(IList<Sys_MenuItm> menuItms)
{
if (menuItms == null || menuItms.Count < 1)
{
return null;
}
// 找到顶层 MenuItm
IList<Sys_MenuItm> topMenuItms = menuItms.Where(it => it.Depth == 1).ToList();
// 创建子菜单集合
for (int i = 0; i < topMenuItms.Count; i++)
{
CreateChildMenuItem(topMenuItms[i], menuItms);
}
return topMenuItms;
}
/// <summary>
/// 创建子菜单
/// </summary>
/// <param name="parentMenu">父菜单</param>
/// <param name="menuItms">子菜单集合</param>
private void CreateChildMenuItem(Sys_MenuItm parentMenu, IList<Sys_MenuItm> menuItms)
{
if (parentMenu == null || menuItms == null)
{
return;
}
IList<Sys_MenuItm> childMenus = menuItms.Where(it => it.ParentMenuCode == parentMenu.MenuCode).ToList();
parentMenu.Children = childMenus;
if (childMenus == null || childMenus.Count < 1)
return;
for (int i = 0; i < childMenus.Count; i++)
{
childMenus[i].Parent = parentMenu;
CreateChildMenuItem(childMenus[i], menuItms);
}
}