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:
parent
5724bc5b3b
commit
1ff13bf459
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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[]) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue