feat: группа без детей с пустым отображением становится конечной строкой в дереве

This commit is contained in:
2026-07-21 15:17:38 +03:00
parent 9e1612c4c3
commit 08b0979ca2
2 changed files with 101 additions and 16 deletions

View File

@@ -585,13 +585,30 @@ export function registerDataTableRoutes(app: import("express").Express): void {
const nodes: TreeNode[] = [];
for (const [label, groupRows] of groups) {
nodes.push({
type: 'group',
id: `group:${level}:${label}`,
label,
level,
children: buildMultiColumnTree(groupRows, columns, level + 1),
// Если у группы все строки имеют пустое значение в treeDisplayColumns,
// группа становится конечной строкой (можно выбрать в задачах)
const allEmpty = groupRows.every((row) => {
const vals = Array.isArray(row.values) ? row.values : [];
return treeDisplayColumns.every((ci) => !String(vals[ci] ?? '').trim());
});
if (allEmpty && groupRows.length === 1) {
nodes.push({
type: 'row',
id: groupRows[0].id,
label,
level,
row: groupRows[0],
});
} else {
nodes.push({
type: 'group',
id: `group:${level}:${label}`,
label,
level,
children: buildMultiColumnTree(groupRows, columns, level + 1),
});
}
}
if (rootRows.length > 0) {