Skip to content

Commit 024c01d

Browse files
wyc001122wyc001122jinmao88
authored
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 <[email protected]> Co-authored-by: Jin Mao <[email protected]>
1 parent 2adb8ac commit 024c01d

File tree

1 file changed

+11
-5
lines changed
  • packages/@core/ui-kit/shadcn-ui/src/ui/tree

1 file changed

+11
-5
lines changed

packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue

+11-5
Original file line numberDiff line numberDiff line change
@@ -224,23 +224,28 @@ defineExpose({
224224
:class="
225225
cn('cursor-pointer', getNodeClass?.(item), {
226226
'data-[selected]:bg-accent': !multiple,
227+
'cursor-not-allowed': disabled,
228+
})
229+
"
230+
v-bind="
231+
Object.assign(item.bind, {
232+
onfocus: disabled ? 'this.blur()' : undefined,
227233
})
228234
"
229-
v-bind="item.bind"
230235
@select="
231236
(event) => {
232237
if (event.detail.originalEvent.type === 'click') {
233238
event.preventDefault();
234239
}
235-
onSelect(item, event.detail.isSelected);
240+
!disabled && onSelect(item, event.detail.isSelected);
236241
}
237242
"
238243
@toggle="
239244
(event) => {
240245
if (event.detail.originalEvent.type === 'click') {
241246
event.preventDefault();
242247
}
243-
onToggle(item);
248+
!disabled && onToggle(item);
244249
}
245250
"
246251
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({
262267
<Checkbox
263268
v-if="multiple"
264269
:checked="isSelected"
270+
:disabled="disabled"
265271
:indeterminate="isIndeterminate"
266272
@click="
267273
() => {
268-
handleSelect();
274+
!disabled && handleSelect();
269275
// onSelect(item, !isSelected);
270276
}
271277
"
@@ -276,7 +282,7 @@ defineExpose({
276282
(_event) => {
277283
// $event.stopPropagation();
278284
// $event.preventDefault();
279-
handleSelect();
285+
!disabled && handleSelect();
280286
// onSelect(item, !isSelected);
281287
}
282288
"

0 commit comments

Comments
 (0)