public class AreaDto
{
public string value { get; set; }
public string ParentCode { get; set; }
public string label { get; set; }
public List<AreaDto> children { get; set; }
}
/// <summary>
/// 获取产地树形
/// </summary>
/// <returns></returns>
[HttpGet, Route("api/ProducingArea/GetAreaTree")]
public IHttpActionResult GetAreaTree()
{
BaseResultList<AreaDto> result = new BaseResultList<AreaDto>();
try
{
var list = dbDepot.sys_area.Where(x => x.parent_code != "0"&&x.level!=3).Select(x => new AreaDto
{
label = x.area_name,
value = x.area_code,
ParentCode = x.parent_code,
})
.OrderBy(x => x.value)
.AsNoTracking()
.ToDictionary(x => x.value);
foreach (var Lmn in list.Values)
{
if (list.ContainsKey(Lmn.ParentCode))
{
if (list[Lmn.ParentCode].children == null)
list[Lmn.ParentCode].children = new List<AreaDto>();
list[Lmn.ParentCode].children.Add(Lmn);
}
}
result.data = list.Values.Where(x => x.value.Substring(x.value.Length - 4, 4) == "0000").ToList();
}
catch (Exception ex)
{
result.code = (int)Const.c_code.抛出异常;
result.message = Const.c_code.抛出异常.ToString();
Log.CreateLog(Log.LOG_ERROR, loginerBase.UserName, "api/Menu/GetAllTree", ex.Message);
}
return Json(result, serializerSettings, Encoding.UTF8);
}