diff --git a/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue b/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue index 5f50d2df..c50a79d2 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue +++ b/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue @@ -159,19 +159,21 @@ function collapseAll() { } function checkAll() { - if (props.multiple) { - modelValue.value = flattenData.value.map((item) => - get(item.value, props.valueField), - ); - updateTreeValue(); - } + if (!props.multiple) return; + modelValue.value = [ + ...new Set( + flattenData.value + .filter((item) => !get(item.value, props.disabledField)) + .map((item) => get(item.value, props.valueField)), + ), + ]; + updateTreeValue(); } function unCheckAll() { - if (props.multiple) { - modelValue.value = []; - updateTreeValue(); - } + if (!props.multiple) return; + modelValue.value = []; + updateTreeValue(); } function isNodeDisabled(item: FlattenedItem>) { diff --git a/packages/@core/ui-kit/shadcn-ui/src/ui/tree/types.ts b/packages/@core/ui-kit/shadcn-ui/src/ui/tree/types.ts index 72dc19c4..bf2d6ece 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/ui/tree/types.ts +++ b/packages/@core/ui-kit/shadcn-ui/src/ui/tree/types.ts @@ -51,7 +51,6 @@ export function treePropsDefaults() { defaultExpandedLevel: 0, disabled: false, disabledField: 'disabled', - expanded: () => [], iconField: 'icon', labelField: 'label', multiple: false,