Commit 1ff13bf4596887af7eeaca968d16c2f14835ed99

Authored by Netfan
Committed by GitHub
1 parent 5724bc5b

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

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

* fix(tree): searching with replaceFields(#557)
src/components/Table/src/hooks/useCustomRow.ts
... ... @@ -36,37 +36,40 @@ export function useCustomRow(
36 36 const customRow = (record: Recordable, index: number) => {
37 37 return {
38 38 onClick: (e: Event) => {
39   - emit('row-click', record, index, e);
40 39 e?.stopPropagation();
41   - const { rowSelection, rowKey, clickToRowSelect } = unref(propsRef);
42   - if (!rowSelection || !clickToRowSelect) return;
43   - const keys = getSelectRowKeys();
44   - const key = getKey(record, rowKey, unref(getAutoCreateKey));
45   - if (!key) return;
  40 + function handleClick() {
  41 + const { rowSelection, rowKey, clickToRowSelect } = unref(propsRef);
  42 + if (!rowSelection || !clickToRowSelect) return;
  43 + const keys = getSelectRowKeys();
  44 + const key = getKey(record, rowKey, unref(getAutoCreateKey));
  45 + if (!key) return;
46 46  
47   - const isCheckbox = rowSelection.type === 'checkbox';
48   - if (isCheckbox) {
49   - if (!keys.includes(key)) {
50   - setSelectedRowKeys([...keys, key]);
  47 + const isCheckbox = rowSelection.type === 'checkbox';
  48 + if (isCheckbox) {
  49 + if (!keys.includes(key)) {
  50 + setSelectedRowKeys([...keys, key]);
  51 + return;
  52 + }
  53 + const keyIndex = keys.findIndex((item) => item === key);
  54 + keys.splice(keyIndex, 1);
  55 + setSelectedRowKeys(keys);
51 56 return;
52 57 }
53   - const keyIndex = keys.findIndex((item) => item === key);
54   - keys.splice(keyIndex, 1);
55   - setSelectedRowKeys(keys);
56   - return;
57   - }
58 58  
59   - const isRadio = rowSelection.type === 'radio';
60   - if (isRadio) {
61   - if (!keys.includes(key)) {
62   - if (keys.length) {
63   - clearSelectedRowKeys();
  59 + const isRadio = rowSelection.type === 'radio';
  60 + if (isRadio) {
  61 + if (!keys.includes(key)) {
  62 + if (keys.length) {
  63 + clearSelectedRowKeys();
  64 + }
  65 + setSelectedRowKeys([key]);
  66 + return;
64 67 }
65   - setSelectedRowKeys([key]);
66   - return;
  68 + clearSelectedRowKeys();
67 69 }
68   - clearSelectedRowKeys();
69 70 }
  71 + handleClick();
  72 + emit('row-click', record, index, e);
70 73 },
71 74 onDblclick: (event: Event) => {
72 75 emit('row-dbClick', record, index, event);
... ...
src/components/Tree/src/index.vue
... ... @@ -185,9 +185,13 @@
185 185 searchState.startSearch = true;
186 186 const { title: titleField } = unref(getReplaceFields);
187 187  
188   - searchState.searchData = filter(unref(treeDataRef), (node) => {
189   - return node[titleField]?.includes(searchValue) ?? false;
190   - });
  188 + searchState.searchData = filter(
  189 + unref(treeDataRef),
  190 + (node) => {
  191 + return node[titleField]?.includes(searchValue) ?? false;
  192 + },
  193 + unref(getReplaceFields)
  194 + );
191 195 }
192 196  
193 197 function handleClickNode(key: string, children: TreeItem[]) {
... ...