From 0d9c3cbb735f0009c1c6986dfc7081b4eb6fe431 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E6=9D=A8=E6=9E=9A?=
Date: Sun, 27 Apr 2025 17:16:23 +0800
Subject: [PATCH] feat: add configuration to display aggregation result when
data is empty
---
docs/assets/option/en/table/listTable.md | 4 ++++
docs/assets/option/zh/table/listTable.md | 4 ++++
packages/vtable/src/ListTable.ts | 5 ++++-
packages/vtable/src/ts-types/table-engine.ts | 3 ++-
4 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/docs/assets/option/en/table/listTable.md b/docs/assets/option/en/table/listTable.md
index 3ff595bb3d..7ca28b7fce 100644
--- a/docs/assets/option/en/table/listTable.md
+++ b/docs/assets/option/en/table/listTable.md
@@ -133,6 +133,10 @@ type CustomAggregation = {
};
```
+## showAggregationWhenEmpty(boolean)
+
+Display aggregation result when data is empty.
+
## groupBy(string|string[])
Enable the group display function to display the hierarchical structure of the group fields in the data. The value is the group field name, which can be configured as one field or an array of multiple fields.
diff --git a/docs/assets/option/zh/table/listTable.md b/docs/assets/option/zh/table/listTable.md
index 42b7aa478b..71dd50ef2b 100644
--- a/docs/assets/option/zh/table/listTable.md
+++ b/docs/assets/option/zh/table/listTable.md
@@ -130,6 +130,10 @@ type CustomAggregation = {
};
```
+## showAggregationWhenEmpty(boolean)
+
+数据为空时是否仍显示聚合结果。
+
## groupBy(string|string[])
开启分组展示功能,用于展示数据中分组字段的层级结构。值为分组字段名称,可以配置一个字段,也可以配置多个字段组成的数组。
diff --git a/packages/vtable/src/ListTable.ts b/packages/vtable/src/ListTable.ts
index 6149c09a65..51ece44d5e 100644
--- a/packages/vtable/src/ListTable.ts
+++ b/packages/vtable/src/ListTable.ts
@@ -618,7 +618,10 @@ export class ListTable extends BaseTable implements ListTableAPI {
const dataCount = table.internalProps.dataSource?.length ?? 0;
layoutMap.recordsCount =
- dataCount + (dataCount > 0 ? layoutMap.hasAggregationOnTopCount + layoutMap.hasAggregationOnBottomCount : 0);
+ dataCount +
+ (dataCount > 0 || !!this.options.showAggregationWhenEmpty
+ ? layoutMap.hasAggregationOnTopCount + layoutMap.hasAggregationOnBottomCount
+ : 0);
if (table.transpose) {
table.rowCount = layoutMap.rowCount ?? 0;
diff --git a/packages/vtable/src/ts-types/table-engine.ts b/packages/vtable/src/ts-types/table-engine.ts
index 8dd34c19cb..69f6c8dd80 100644
--- a/packages/vtable/src/ts-types/table-engine.ts
+++ b/packages/vtable/src/ts-types/table-engine.ts
@@ -280,7 +280,8 @@ export interface ListTableConstructorOptions extends BaseTableConstructorOptions
col: number;
field: string;
}) => Aggregation | CustomAggregation | (Aggregation | CustomAggregation)[] | null);
-
+ /** 数据为空时显示聚合结果 */
+ showAggregationWhenEmpty?: boolean;
enableTreeNodeMerge?: boolean;
groupBy?: GroupByOption;
groupTitleCustomLayout?: ICustomLayout;