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 c50a79d2..45992327 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 @@ -200,11 +200,12 @@ function onSelect(item: FlattenedItem>, isSelected: boolean) { get(i.value, props.valueField) === get(item.value, props.valueField) ); }) - ?.parents?.forEach((p) => { - if (Array.isArray(modelValue.value) && !modelValue.value.includes(p)) { - modelValue.value.push(p); - } - }); + ?.parents?.filter((item) => !get(item, props.disabledField)) + ?.forEach((p) => { + if (Array.isArray(modelValue.value) && !modelValue.value.includes(p)) { + modelValue.value.push(p); + } + }); } if ( !props.checkStrictly && @@ -218,7 +219,8 @@ function onSelect(item: FlattenedItem>, isSelected: boolean) { get(i.value, props.valueField) === get(item.value, props.valueField) ); }) - ?.parents?.reverse() + ?.parents?.filter((item) => !get(item, props.disabledField)) + ?.reverse() .forEach((p) => { const children = flattenData.value.filter((i) => { return ( @@ -324,7 +326,7 @@ defineExpose({ :class=" cn('cursor-pointer', getNodeClass?.(item), { 'data-[selected]:bg-accent': !multiple, - 'cursor-not-allowed': isNodeDisabled(item), + 'text-foreground/50 cursor-not-allowed': isNodeDisabled(item), }) " v-bind="