diff --git a/src/components/Table/src/hooks/useCustomRow.ts b/src/components/Table/src/hooks/useCustomRow.ts index e2027e9fdeed5167e30a54eb2b174e795103b1ca..1cfcac0870a7eeca8c59dea8317e6fb4952a94fd 100644 --- a/src/components/Table/src/hooks/useCustomRow.ts +++ b/src/components/Table/src/hooks/useCustomRow.ts @@ -36,37 +36,40 @@ export function useCustomRow( const customRow = (record: Recordable, index: number) => { return { onClick: (e: Event) => { - emit('row-click', record, index, e); e?.stopPropagation(); - const { rowSelection, rowKey, clickToRowSelect } = unref(propsRef); - if (!rowSelection || !clickToRowSelect) return; - const keys = getSelectRowKeys(); - const key = getKey(record, rowKey, unref(getAutoCreateKey)); - if (!key) return; + function handleClick() { + const { rowSelection, rowKey, clickToRowSelect } = unref(propsRef); + if (!rowSelection || !clickToRowSelect) return; + const keys = getSelectRowKeys(); + const key = getKey(record, rowKey, unref(getAutoCreateKey)); + if (!key) return; - const isCheckbox = rowSelection.type === 'checkbox'; - if (isCheckbox) { - if (!keys.includes(key)) { - setSelectedRowKeys([...keys, key]); + const isCheckbox = rowSelection.type === 'checkbox'; + if (isCheckbox) { + if (!keys.includes(key)) { + setSelectedRowKeys([...keys, key]); + return; + } + const keyIndex = keys.findIndex((item) => item === key); + keys.splice(keyIndex, 1); + setSelectedRowKeys(keys); 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(); + const isRadio = rowSelection.type === 'radio'; + if (isRadio) { + if (!keys.includes(key)) { + if (keys.length) { + clearSelectedRowKeys(); + } + setSelectedRowKeys([key]); + return; } - setSelectedRowKeys([key]); - return; + clearSelectedRowKeys(); } - clearSelectedRowKeys(); } + handleClick(); + emit('row-click', record, index, e); }, onDblclick: (event: Event) => { emit('row-dbClick', record, index, event); diff --git a/src/components/Tree/src/index.vue b/src/components/Tree/src/index.vue index 5f59cfb4a5c8142c157fab19b86fbfbc132947a4..3df9cc2ca488904b2da5cfea9697b38124d8f674 100644 --- a/src/components/Tree/src/index.vue +++ b/src/components/Tree/src/index.vue @@ -185,9 +185,13 @@ searchState.startSearch = true; const { title: titleField } = unref(getReplaceFields); - searchState.searchData = filter(unref(treeDataRef), (node) => { - return node[titleField]?.includes(searchValue) ?? false; - }); + searchState.searchData = filter( + unref(treeDataRef), + (node) => { + return node[titleField]?.includes(searchValue) ?? false; + }, + unref(getReplaceFields) + ); } function handleClickNode(key: string, children: TreeItem[]) {