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 0a6e8806d..149332b16 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 @@ -249,6 +249,7 @@ function onSelect(item: FlattenedItem>, isSelected: boolean) { props.checkStrictly && props.multiple && props.autoCheckParent && + !props.keepParentOnUncheck && !isSelected ) { flattenData.value 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 b962a7ee7..7d1a33208 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 @@ -27,6 +27,8 @@ export interface TreeProps { /** 自定义节点类名 */ getNodeClass?: (item: FlattenedItem>) => string; iconField?: string; + /** 取消勾选子节点时保持父节点的选中状态,不级联取消父节点(默认 false:级联取消) */ + keepParentOnUncheck?: boolean; /** label字段 */ labelField?: string; /** 是否多选 */ @@ -58,6 +60,7 @@ export function treePropsDefaults() { multiple: false, showIcon: true, transition: true, + keepParentOnUncheck: false, valueField: 'value', childrenField: 'children', };