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