feat: группа без детей с пустым отображением становится конечной строкой в дереве
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user