Browse Source

feat(table component): add 'expandRows' table action (#1537)

* fix(table component): add 'expandRows'

* feat(table component): add 'expandRows' table action
pull/1552/head
George Tan 5 years ago
committed by GitHub
parent
commit
1dc6faf3e6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      src/components/Table/src/BasicTable.vue
  2. 3
      src/components/Table/src/hooks/useTable.ts
  3. 9
      src/components/Table/src/hooks/useTableExpand.ts
  4. 1
      src/components/Table/src/types/table.ts

7
src/components/Table/src/BasicTable.vue

@ -199,7 +199,11 @@
const { getRowClassName } = useTableStyle(getProps, prefixCls); const { getRowClassName } = useTableStyle(getProps, prefixCls);
const { getExpandOption, expandAll, collapseAll } = useTableExpand(getProps, tableData, emit); const { getExpandOption, expandAll, expandRows, collapseAll } = useTableExpand(
getProps,
tableData,
emit,
);
const handlers: InnerHandlers = { const handlers: InnerHandlers = {
onColumnsChange: (data: ColumnChangeParam[]) => { onColumnsChange: (data: ColumnChangeParam[]) => {
@ -300,6 +304,7 @@
getShowPagination, getShowPagination,
setCacheColumnsByField, setCacheColumnsByField,
expandAll, expandAll,
expandRows,
collapseAll, collapseAll,
scrollTo, scrollTo,
getSize: () => { getSize: () => {

3
src/components/Table/src/hooks/useTable.ts

@ -152,6 +152,9 @@ export function useTable(tableProps?: Props): [
expandAll: () => { expandAll: () => {
getTableInstance().expandAll(); getTableInstance().expandAll();
}, },
expandRows: (keys: string[]) => {
getTableInstance().expandRows(keys);
},
collapseAll: () => { collapseAll: () => {
getTableInstance().collapseAll(); getTableInstance().collapseAll();
}, },

9
src/components/Table/src/hooks/useTableExpand.ts

@ -37,6 +37,13 @@ export function useTableExpand(
expandedRowKeys.value = keys; expandedRowKeys.value = keys;
} }
function expandRows(keys: string[]) {
// use row ID expands the specified table row
const { isTreeTable } = unref(propsRef);
if (!isTreeTable) return;
expandedRowKeys.value = [...expandedRowKeys.value, ...keys];
}
function getAllKeys(data?: Recordable[]) { function getAllKeys(data?: Recordable[]) {
const keys: string[] = []; const keys: string[] = [];
const { childrenColumnName } = unref(propsRef); const { childrenColumnName } = unref(propsRef);
@ -54,5 +61,5 @@ export function useTableExpand(
expandedRowKeys.value = []; expandedRowKeys.value = [];
} }
return { getExpandOption, expandAll, collapseAll }; return { getExpandOption, expandAll, expandRows, collapseAll };
} }

1
src/components/Table/src/types/table.ts

@ -87,6 +87,7 @@ export interface TableActionType {
getSelectRows: <T = Recordable>() => T[]; getSelectRows: <T = Recordable>() => T[];
clearSelectedRowKeys: () => void; clearSelectedRowKeys: () => void;
expandAll: () => void; expandAll: () => void;
expandRows: (keys: string[]) => void;
collapseAll: () => void; collapseAll: () => void;
scrollTo: (pos: string) => void; // pos: id | "top" | "bottom" scrollTo: (pos: string) => void; // pos: id | "top" | "bottom"
getSelectRowKeys: () => string[]; getSelectRowKeys: () => string[];

Loading…
Cancel
Save