From 1350ecf4f7d8733e7ccd73313082351d9fc3b539 Mon Sep 17 00:00:00 2001 From: Peter Jiang <31021328+PeterJayawesome@users.noreply.github.com> Date: Sun, 21 Jan 2024 17:43:20 +0800 Subject: [PATCH] fix(tree-select): filterByText keep pace with innerInputValue (#3862) filterByText keep pace with innerInputValue closed #3833, #3852 --- src/tree-select/tree-select.tsx | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/tree-select/tree-select.tsx b/src/tree-select/tree-select.tsx index dcbfe65989..e9b1caba39 100644 --- a/src/tree-select/tree-select.tsx +++ b/src/tree-select/tree-select.tsx @@ -36,7 +36,6 @@ export default defineComponent({ const treeRef = ref(null); // data - const filterByText = ref(null); const actived = ref([]); const expanded = ref([]); const nodeInfo = ref(null); @@ -77,6 +76,22 @@ export default defineComponent({ ); // computed + /** filterByText keep pace with innerInputValue */ + const filterByText = computed(() => { + const value = innerInputValue.value || ''; + if (value === '') { + return null; + } + return (node: TreeNodeModel) => { + if (isFunction(props.filter)) { + const filter: boolean | Promise = props.filter(String(value), node); + if (isBoolean(filter)) { + return filter; + } + } + return node.data[realLabel.value].indexOf(value) >= 0; + }; + }); const tDisabled = computed(() => { return formDisabled.value || props.disabled; }); @@ -230,19 +245,6 @@ export default defineComponent({ return; } setInnerInputValue(value); - if (!value) { - filterByText.value = null; - return null; - } - filterByText.value = (node: TreeNodeModel) => { - if (isFunction(props.filter)) { - const filter: boolean | Promise = props.filter(String(value), node); - if (isBoolean(filter)) { - return filter; - } - } - return node.data[realLabel.value].indexOf(value) >= 0; - }; props.onSearch?.(String(value)); };