From bfc7d948b6ba996487327fc637982500a14bf6f6 Mon Sep 17 00:00:00 2001 From: saller Date: Fri, 13 Jan 2023 10:55:59 +0800 Subject: [PATCH] fix(comp:tree): correct param `checked` of `onCheck` (#1404) `checked` should be the state of check operation instead of state of node --- .../components/tree/src/composables/useCheckable.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/components/tree/src/composables/useCheckable.ts b/packages/components/tree/src/composables/useCheckable.ts index 07b07eaa2..5356e3ee9 100644 --- a/packages/components/tree/src/composables/useCheckable.ts +++ b/packages/components/tree/src/composables/useCheckable.ts @@ -80,14 +80,15 @@ export function useCheckable(props: TreeProps, mergedNodeMap: ComputedRef -1 + let tempKeys = [...allCheckedKeys.value] - if ( - checked || - (childrenKeys.length && + const checked = + index > -1 || + (!!childrenKeys.length && childrenKeys.every(key => tempKeys.includes(key) || indeterminateKeys.value.includes(key))) - ) { + + if (checked) { const parentKeys = cascaderEnabled ? getParentKeys(nodeMap, node, disabledKeys) : [] tempKeys.splice(index, 1) tempKeys = tempKeys.filter(key => !parentKeys.includes(key) && !childrenKeys.includes(key))