From 024c01d350c6a819b49a3153f0bec033a1e450b6 Mon Sep 17 00:00:00 2001 From: wyc001122 <498040880@qq.com> Date: Fri, 16 May 2025 14:13:43 +0800 Subject: [PATCH] fix(@vben-core/shadcn-ui): fix disabled functionality not working in VbenTree component (#6205) * fix(@vben-core/shadcn-ui): fix disabled functionality not working in VbenTree component * fix(@vben-core/shadcn-ui): add cursor-not-allowed className when disabled and disable onfocus --------- Co-authored-by: wyc001122 Co-authored-by: Jin Mao <50581550+jinmao88@users.noreply.github.com> --- .../@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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 67efb697..03117b36 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 @@ -224,15 +224,20 @@ defineExpose({ :class=" cn('cursor-pointer', getNodeClass?.(item), { 'data-[selected]:bg-accent': !multiple, + 'cursor-not-allowed': disabled, + }) + " + v-bind=" + Object.assign(item.bind, { + onfocus: disabled ? 'this.blur()' : undefined, }) " - v-bind="item.bind" @select=" (event) => { if (event.detail.originalEvent.type === 'click') { event.preventDefault(); } - onSelect(item, event.detail.isSelected); + !disabled && onSelect(item, event.detail.isSelected); } " @toggle=" @@ -240,7 +245,7 @@ defineExpose({ if (event.detail.originalEvent.type === 'click') { event.preventDefault(); } - onToggle(item); + !disabled && onToggle(item); } " class="tree-node focus:ring-grass8 my-0.5 flex items-center rounded px-2 py-1 outline-none focus:ring-2" @@ -262,10 +267,11 @@ defineExpose({ { // $event.stopPropagation(); // $event.preventDefault(); - handleSelect(); + !disabled && handleSelect(); // onSelect(item, !isSelected); } "