diff --git a/packages/pro/transfer/src/composables/useTreeExpandedKeys.ts b/packages/pro/transfer/src/composables/useTreeExpandedKeys.ts index 514652aaa..2560e8f14 100644 --- a/packages/pro/transfer/src/composables/useTreeExpandedKeys.ts +++ b/packages/pro/transfer/src/composables/useTreeExpandedKeys.ts @@ -41,7 +41,9 @@ export function useTreeExpandedKeys, C extends ) => { const processExpandedKey = (key: VKey) => { if (expandedKeysSource.has(key)) { - !expandedKeysTarget.has(key) && expandedKeysTarget.add(key) + expandedKeysTarget.add(key) + } else if (remove) { + expandedKeysTarget.delete(key) } } @@ -57,8 +59,6 @@ export function useTreeExpandedKeys, C extends processExpandedKey(getKey.value(item)) }) } - - remove && expandedKeysSource.delete(key) } watch(targetKeySet, (keys, oldKeys) => { @@ -77,10 +77,10 @@ export function useTreeExpandedKeys, C extends const newSourceExpandedKeySet = new Set(sourceExpandedKeySet.value) deletedKeySet?.forEach(key => { - syncSelectedExpandedState(key, newTargetExpandedKeySet, newSourceExpandedKeySet, true) + syncSelectedExpandedState(key, newTargetExpandedKeySet, newSourceExpandedKeySet, false) }) newKeySet?.forEach(key => { - syncSelectedExpandedState(key, newSourceExpandedKeySet, newTargetExpandedKeySet, props.mode !== 'immediate') + syncSelectedExpandedState(key, newSourceExpandedKeySet, newTargetExpandedKeySet, true) }) setTargetExpandedKeys(Array.from(newTargetExpandedKeySet))