From 16e801249cccdc9757ff966cb24355925581278f Mon Sep 17 00:00:00 2001 From: tangjinzhou <415800467@qq.com> Date: Thu, 9 Sep 2021 23:16:08 +0800 Subject: [PATCH] feat: table support summary --- components/components.ts | 9 +- components/table/Column.tsx | 2 +- components/table/Table.tsx | 11 +- components/table/demo/ellipsis.vue | 4 - components/table/demo/index.vue | 6 + components/table/demo/multiple-sorter.vue | 99 +++++++++++ .../demo/row-selection-and-operation.vue | 3 +- .../table/demo/row-selection-custom.vue | 28 ++-- components/table/demo/row-selection.vue | 24 +-- components/table/demo/summary.vue | 158 ++++++++++++++++++ components/table/index.tsx | 70 ++++++-- components/vc-table/Cell/index.tsx | 2 +- components/vc-table/Footer/Cell.tsx | 5 +- components/vc-table/Footer/Summary.tsx | 4 - components/vc-table/Footer/index.tsx | 3 + components/vc-table/Table.tsx | 6 +- components/vc-table/index.ts | 4 +- site/debugger/index.tsx | 2 +- 18 files changed, 366 insertions(+), 74 deletions(-) create mode 100644 components/table/demo/multiple-sorter.vue create mode 100644 components/table/demo/summary.vue diff --git a/components/components.ts b/components/components.ts index 8ed64834e..eb8b75c61 100644 --- a/components/components.ts +++ b/components/components.ts @@ -172,7 +172,14 @@ export type { ColumnProps as TableColumnProps, ColumnsType as TableColumnsType, } from './table'; -export { default as Table, TableColumn, TableColumnGroup } from './table'; +export { + default as Table, + TableColumn, + TableColumnGroup, + TableSummary, + TableSummaryRow, + TableSummaryCell, +} from './table'; export type { TransferProps } from './transfer'; export { default as Transfer } from './transfer'; diff --git a/components/table/Column.tsx b/components/table/Column.tsx index 890072b7d..588cddedf 100644 --- a/components/table/Column.tsx +++ b/components/table/Column.tsx @@ -1,7 +1,7 @@ import { defineComponent } from 'vue'; import type { ColumnType } from './interface'; -export type ColumnProps = ColumnType; +export type ColumnProps = ColumnType; export default defineComponent({ name: 'ATableColumn', slots: ['title', 'filterIcon'], diff --git a/components/table/Table.tsx b/components/table/Table.tsx index b2e8b5557..109b7f92f 100644 --- a/components/table/Table.tsx +++ b/components/table/Table.tsx @@ -489,7 +489,9 @@ const InteralTable = defineComponent< return classNames( { - [`${prefixCls}-row-selected`]: selectedKeySet.value.has(getRowKey.value(record, index)), + [`${prefixCls.value}-row-selected`]: selectedKeySet.value.has( + getRowKey.value(record, index), + ), }, mergedRowClassName, ); @@ -645,11 +647,4 @@ const Table = defineComponent({ }, }); -Table.SELECTION_ALL = SELECTION_ALL; -Table.SELECTION_INVERT = SELECTION_INVERT; -Table.SELECTION_NONE = SELECTION_NONE; -Table.Column = Column; -Table.ColumnGroup = ColumnGroup; -Table.Summary = Summary; - export default Table; diff --git a/components/table/demo/ellipsis.vue b/components/table/demo/ellipsis.vue index 996d441b9..f55362801 100644 --- a/components/table/demo/ellipsis.vue +++ b/components/table/demo/ellipsis.vue @@ -20,9 +20,6 @@ Ellipsis cell content via setting `column.ellipsis`.