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;
}
浙公网安备 33010602011771号