fix: table reactive error, close #4756

pull/4773/head
tangjinzhou 2021-10-14 10:42:35 +08:00
parent f64d7adb22
commit bd0bc086c1
2 changed files with 21 additions and 19 deletions

View File

@ -471,6 +471,16 @@ const InteralTable = defineComponent<
return mergedData.value.slice((current - 1) * pageSize, current * pageSize); return mergedData.value.slice((current - 1) * pageSize, current * pageSize);
}); });
const expandIconColumnIndex = computed(() => {
// Adjust expand icon index, no overwrite expandIconColumnIndex if set.
if (expandType.value === 'nest' && props.expandIconColumnIndex === undefined) {
return props.rowSelection ? 1 : 0;
} else if (props.expandIconColumnIndex! > 0 && props.rowSelection) {
return props.expandIconColumnIndex - 1;
}
return props.expandIconColumnIndex;
});
// ========================== Selections ========================== // ========================== Selections ==========================
const [transformSelectionColumns, selectedKeySet] = useSelection( const [transformSelectionColumns, selectedKeySet] = useSelection(
computed(() => props.rowSelection), computed(() => props.rowSelection),
@ -483,7 +493,7 @@ const InteralTable = defineComponent<
expandType, expandType,
childrenColumnName, childrenColumnName,
locale: tableLocale, locale: tableLocale,
expandIconColumnIndex: computed(() => props.expandIconColumnIndex), expandIconColumnIndex,
getPopupContainer: computed(() => props.getPopupContainer), getPopupContainer: computed(() => props.getPopupContainer),
}, },
); );
@ -509,15 +519,6 @@ const InteralTable = defineComponent<
expose({ expose({
selectedKeySet, selectedKeySet,
}); });
const expandIconColumnIndex = computed(() => {
// Adjust expand icon index, no overwrite expandIconColumnIndex if set.
if (expandType.value === 'nest' && props.expandIconColumnIndex === undefined) {
return props.rowSelection ? 1 : 0;
} else if (props.expandIconColumnIndex! > 0 && props.rowSelection) {
return props.expandIconColumnIndex - 1;
}
return props.expandIconColumnIndex;
});
const indentSize = computed(() => { const indentSize = computed(() => {
// Indent size // Indent size

View File

@ -527,17 +527,18 @@ export default defineComponent<TableProps<DefaultRecordType>>({
summaryCollect, summaryCollect,
}), }),
); );
useProvideBody( useProvideBody(
reactive({ reactive({
...reactivePick( ...toRefs(
props, reactivePick(
'rowClassName', props,
'expandedRowClassName', 'rowClassName',
'expandRowByClick', 'expandedRowClassName',
'expandedRowRender', 'expandRowByClick',
'expandIconColumnIndex', 'expandedRowRender',
'indentSize', 'expandIconColumnIndex',
'indentSize',
),
), ),
columns, columns,
flattenColumns, flattenColumns,