代码改变世界

C# 获取树型菜单

2020-07-25 12:41  idea555  阅读(336)  评论(0)    收藏  举报

/// <summary>
/// 获取区域架构信息树
/// </summary>
/// <returns>返回运行结果</returns>
[HttpGet]
public JsonResult GetTree()
{
List<SysDepartmentTreeVM> returnVM = null;

try
{
#region 初始化变量

List<SysDepartment> departItems = null;

#endregion

#region 获取整个权限列表

List<SysDepartment> departList = _iSysDepartmentService.Query<SysDepartment>(f => f.Id != 0 && f.IsDel == false).ToList();

if (departList != null)
{
departItems = departList;
}

#endregion

#region 整理权限列表树

if (departItems != null)
{
returnVM = (from d in departItems
where d.ParentId == 0 && d.Level == 0
select new SysDepartmentTreeVM
{
id = d.Id,
text = d.DepartmentName,
flagUrl = "",
children = GetChildren(departItems, d.Id)
}).ToList();
}

#endregion
}
catch (Exception ex)
{

}


return Json(returnVM, JsonRequestBehavior.AllowGet);
}

 

 

/// <summary>
/// 获取子区域架构信息树
/// </summary>
/// <param name="regionalStructureInfoItems">区域架构信息集</param>
/// <param name="parentCode">上级编号</param>
/// <returns>返回运行结果</returns>
private List<SysDepartmentTreeVM> GetChildren(List<SysDepartment> organItems, int parentCode)
{
List<SysDepartmentTreeVM> returnValue = new List<SysDepartmentTreeVM>();

try
{

returnValue = (from d in organItems
where d.ParentId == parentCode
select new SysDepartmentTreeVM
{
id = d.Id,
text = d.DepartmentName,
flagUrl = "",
children = GetChildren(organItems, d.Id)
}).ToList();
}
catch (Exception ex)
{

}

return returnValue;
}