提交 df0f0008 作者: 无木

fix(table): fix rowSelection.onChange not work

修复为table提供rowSelection.onChange时,无法手动变更table的选中项的问题

fixed: #825
上级 99829c79
import { isFunction } from '/@/utils/is';
import type { BasicTableProps, TableRowSelection } from '../types/table'; import type { BasicTableProps, TableRowSelection } from '../types/table';
import { computed, ref, unref, ComputedRef, Ref, toRaw } from 'vue'; import { computed, ref, unref, ComputedRef, Ref, toRaw, watch } from 'vue';
import { ROW_KEY } from '../const'; import { ROW_KEY } from '../const';
import { omit } from 'lodash-es';
export function useRowSelection( export function useRowSelection(
propsRef: ComputedRef<BasicTableProps>, propsRef: ComputedRef<BasicTableProps>,
...@@ -22,15 +24,24 @@ export function useRowSelection( ...@@ -22,15 +24,24 @@ export function useRowSelection(
onChange: (selectedRowKeys: string[], selectedRows: Recordable[]) => { onChange: (selectedRowKeys: string[], selectedRows: Recordable[]) => {
selectedRowKeysRef.value = selectedRowKeys; selectedRowKeysRef.value = selectedRowKeys;
selectedRowRef.value = selectedRows; selectedRowRef.value = selectedRows;
const { onChange } = rowSelection;
if (onChange && isFunction(onChange)) onChange(selectedRowKeys, selectedRows);
emit('selection-change', { emit('selection-change', {
keys: selectedRowKeys, keys: selectedRowKeys,
rows: selectedRows, rows: selectedRows,
}); });
}, },
...(rowSelection === undefined ? {} : rowSelection), ...omit(rowSelection === undefined ? {} : rowSelection, ['onChange']),
}; };
}); });
watch(
() => unref(propsRef).rowSelection?.selectedRowKeys,
(v: string[]) => {
selectedRowKeysRef.value = v;
}
);
const getAutoCreateKey = computed(() => { const getAutoCreateKey = computed(() => {
return unref(propsRef).autoCreateKey && !unref(propsRef).rowKey; return unref(propsRef).autoCreateKey && !unref(propsRef).rowKey;
}); });
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论