fix:searching with replaceFields fix #548,#557 (#569)

* fix: update selected before row-click event(#548)

* fix(tree): searching with replaceFields(#557)
This commit is contained in:
Netfan 2021-05-06 21:10:29 +08:00 committed by GitHub
parent 5724bc5b3b
commit 1ff13bf459
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 28 deletions

View File

@ -36,37 +36,40 @@ export function useCustomRow(
const customRow = (record: Recordable, index: number) => { const customRow = (record: Recordable, index: number) => {
return { return {
onClick: (e: Event) => { onClick: (e: Event) => {
emit('row-click', record, index, e);
e?.stopPropagation(); e?.stopPropagation();
const { rowSelection, rowKey, clickToRowSelect } = unref(propsRef); function handleClick() {
if (!rowSelection || !clickToRowSelect) return; const { rowSelection, rowKey, clickToRowSelect } = unref(propsRef);
const keys = getSelectRowKeys(); if (!rowSelection || !clickToRowSelect) return;
const key = getKey(record, rowKey, unref(getAutoCreateKey)); const keys = getSelectRowKeys();
if (!key) return; const key = getKey(record, rowKey, unref(getAutoCreateKey));
if (!key) return;
const isCheckbox = rowSelection.type === 'checkbox'; const isCheckbox = rowSelection.type === 'checkbox';
if (isCheckbox) { if (isCheckbox) {
if (!keys.includes(key)) { if (!keys.includes(key)) {
setSelectedRowKeys([...keys, key]); setSelectedRowKeys([...keys, key]);
return; return;
}
const keyIndex = keys.findIndex((item) => item === key);
keys.splice(keyIndex, 1);
setSelectedRowKeys(keys);
return;
}
const isRadio = rowSelection.type === 'radio';
if (isRadio) {
if (!keys.includes(key)) {
if (keys.length) {
clearSelectedRowKeys();
} }
setSelectedRowKeys([key]); const keyIndex = keys.findIndex((item) => item === key);
keys.splice(keyIndex, 1);
setSelectedRowKeys(keys);
return; return;
} }
clearSelectedRowKeys();
const isRadio = rowSelection.type === 'radio';
if (isRadio) {
if (!keys.includes(key)) {
if (keys.length) {
clearSelectedRowKeys();
}
setSelectedRowKeys([key]);
return;
}
clearSelectedRowKeys();
}
} }
handleClick();
emit('row-click', record, index, e);
}, },
onDblclick: (event: Event) => { onDblclick: (event: Event) => {
emit('row-dbClick', record, index, event); emit('row-dbClick', record, index, event);

View File

@ -185,9 +185,13 @@
searchState.startSearch = true; searchState.startSearch = true;
const { title: titleField } = unref(getReplaceFields); const { title: titleField } = unref(getReplaceFields);
searchState.searchData = filter(unref(treeDataRef), (node) => { searchState.searchData = filter(
return node[titleField]?.includes(searchValue) ?? false; unref(treeDataRef),
}); (node) => {
return node[titleField]?.includes(searchValue) ?? false;
},
unref(getReplaceFields)
);
} }
function handleClickNode(key: string, children: TreeItem[]) { function handleClickNode(key: string, children: TreeItem[]) {