From 5c2735346745cf91aa9812a0afbf62e4625faf40 Mon Sep 17 00:00:00 2001 From: vben Date: Sat, 2 Jan 2021 22:34:32 +0800 Subject: [PATCH] fix(table): restore the property of the table --- CHANGELOG.zh_CN.md | 1 + src/components/Table/src/hooks/useColumns.ts | 16 +++++++--------- src/components/Table/src/props.ts | 2 ++ src/components/Table/src/types/table.ts | 1 + src/views/demo/table/TreeTable.vue | 1 + 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index 8e109c65e1b..9d54b9d0e3a 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -7,6 +7,7 @@ ### 🐛 Bug Fixes - 修复表格列配置已知问题 +- 恢复 table 的`isTreeTable`属性 ## 2.0.0-rc.15 (2020-12-31) diff --git a/src/components/Table/src/hooks/useColumns.ts b/src/components/Table/src/hooks/useColumns.ts index 92d5b835ab2..2ee95d8a7ee 100644 --- a/src/components/Table/src/hooks/useColumns.ts +++ b/src/components/Table/src/hooks/useColumns.ts @@ -43,19 +43,17 @@ function handleIndexColumn( getPaginationRef: ComputedRef, columns: BasicColumn[] ) { - const { showIndexColumn, indexColumnProps } = unref(propsRef); + const { showIndexColumn, indexColumnProps, isTreeTable } = unref(propsRef); let pushIndexColumns = false; - columns.forEach((item) => { - const { children } = item; - - const isTreeTable = children && children.length; - + if (unref(isTreeTable)) { + return; + } + columns.forEach(() => { const indIndex = columns.findIndex((column) => column.flag === INDEX_COLUMN_FLAG); - - if (showIndexColumn && !isTreeTable) { + if (showIndexColumn) { pushIndexColumns = indIndex === -1; - } else if (!showIndexColumn && !isTreeTable && indIndex !== -1) { + } else if (!showIndexColumn && indIndex !== -1) { columns.splice(indIndex, 1); } }); diff --git a/src/components/Table/src/props.ts b/src/components/Table/src/props.ts index db6df078b92..3e116297c8b 100644 --- a/src/components/Table/src/props.ts +++ b/src/components/Table/src/props.ts @@ -16,6 +16,8 @@ import { propTypes } from '/@/utils/propTypes'; export const basicProps = { clickToRowSelect: propTypes.bool.def(true), + isTreeTable: propTypes.bool.def(false), + tableSetting: { type: Object as PropType, }, diff --git a/src/components/Table/src/types/table.ts b/src/components/Table/src/types/table.ts index 6d7df07223f..ef7c7b93075 100644 --- a/src/components/Table/src/types/table.ts +++ b/src/components/Table/src/types/table.ts @@ -125,6 +125,7 @@ export interface TableSetting { export interface BasicTableProps { // 点击行选中 clickToRowSelect?: boolean; + isTreeTable?: boolean; // 自定义排序方法 sortFn?: (sortInfo: SorterResult) => any; // 排序方法 diff --git a/src/views/demo/table/TreeTable.vue b/src/views/demo/table/TreeTable.vue index 79ae660af88..c43c16978ae 100644 --- a/src/views/demo/table/TreeTable.vue +++ b/src/views/demo/table/TreeTable.vue @@ -8,6 +8,7 @@ :dataSource="data" rowKey="id" :indentSize="20" + isTreeTable />