Explorar el Código

fix(table): restore the property of the table

vben hace 4 años
padre
commit
5c27353467

+ 1 - 0
CHANGELOG.zh_CN.md

@@ -7,6 +7,7 @@
 ### 🐛 Bug Fixes
 
 - 修复表格列配置已知问题
+- 恢复 table 的`isTreeTable`属性
 
 ## 2.0.0-rc.15 (2020-12-31)
 

+ 7 - 9
src/components/Table/src/hooks/useColumns.ts

@@ -43,19 +43,17 @@ function handleIndexColumn(
   getPaginationRef: ComputedRef<boolean | PaginationProps>,
   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);
     }
   });

+ 2 - 0
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<TableSetting>,
   },

+ 1 - 0
src/components/Table/src/types/table.ts

@@ -125,6 +125,7 @@ export interface TableSetting {
 export interface BasicTableProps<T = any> {
   // 点击行选中
   clickToRowSelect?: boolean;
+  isTreeTable?: boolean;
   // 自定义排序方法
   sortFn?: (sortInfo: SorterResult) => any;
   // 排序方法

+ 1 - 0
src/views/demo/table/TreeTable.vue

@@ -8,6 +8,7 @@
       :dataSource="data"
       rowKey="id"
       :indentSize="20"
+      isTreeTable
     />
   </div>
 </template>