##本人之前已用前端实现,现在改为后端处理好返回给前端,这块的C#代码不会写
floorTreeDataLayering(list, rootValue) {
var arr = [];
list.forEach((item) => {
if (item.pGlid === rootValue) {
const children = this.floorTreeDataLayering(list, item.glid);
if (children.length) {
item.children = children;
}
arr.push(item);
}
});
return arr;
},
public async Task<ActionResult<List<ModelTree>>> QueryTreeData()
{
var modelTreeResult = await _context.ModelTrees.ToListAsync();
return modelTreeResult;
}
[
{
"id": 1,
"glid": "1e1cf95b-0a01-459e-ba90-9264ec9a06c0",
"pGlid": "0",
"level": 0,
"name": "LOWER LEVEL",
"externalId": "0",
"groupname": "",
"modelName": "202208031330102658"
},
{
"id": 2,
"glid": "98df97fd-554a-40fe-9e9e-5028b9579542",
"pGlid": "1e1cf95b-0a01-459e-ba90-9264ec9a06c0",
"level": 1,
"name": "墙",
"externalId": "0",
"groupname": "墙",
"modelName": "202208031330102658"
},
{
"id": 3,
"glid": "0f3a6d04-cf9c-4ba7-99c5-ddb251d6a3a9",
"pGlid": "98df97fd-554a-40fe-9e9e-5028b9579542",
"level": 2,
"name": "基本墙",
"externalId": "0",
"groupname": "墙",
"modelName": "202208031330102658"
}
]
private string ToMenuJson(List ModelTrees, string parentId)
{
var sbJson = new StringBuilder();
sbJson.Append("[");
var entitys = ModelTrees.FindAll(t => t.PGlid == parentId).ToList();
if (entitys.Count > 0)
{
foreach (var item in entitys)
{
var strJson = JsonConvert.SerializeObject(item, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
strJson = strJson.Insert(strJson.Length - 1, ",\"ChildNodes\":" + ToMenuJson(ModelTrees, item.Glid) + "");
sbJson.Append(strJson + ",");
}
sbJson = sbJson.Remove(sbJson.Length - 1, 1);
}
sbJson.Append("]");
return sbJson.ToString();
}