Skip to content

Commit 4464b69

Browse files
authored
fix(Tree): add disabled state check for draggable nodes (#3690)
* fix(Tree): add `disabled` state check for `draggable` nodes * fix(Tree): ensure draggable class is only applied to non-disabled nodes
1 parent 7d3c1c4 commit 4464b69

File tree

4 files changed

+10
-8
lines changed

4 files changed

+10
-8
lines changed

src/tree/_example/draggable.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
transition
88
expand-all
99
draggable
10+
check-strictly
1011
:allow-drop="handleAllowDrop"
1112
@drag-start="handleDragStart"
1213
@drag-end="handleDragEnd"
@@ -51,6 +52,7 @@ export default {
5152
{
5253
value: '1.1.2.1',
5354
label: '1.1.2.1',
55+
disabled: true,
5456
},
5557
{
5658
value: '1.1.2.2',
@@ -72,7 +74,7 @@ export default {
7274
},
7375
{
7476
value: '2.2',
75-
label: '2.2 不允许拖放为 2.2 的子节点',
77+
label: '2.2 (不允许其它节点拖放为其子节点)',
7678
},
7779
],
7880
},

src/tree/hooks/useTreeItem.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export default function useTreeItem(state: TypeTreeItemState) {
6565
[`${classPrefix}-is-disabled`]: node.isDisabled(),
6666
});
6767
list.push({
68-
[`${componentName}__item--draggable`]: node.isDraggable(),
68+
[`${componentName}__item--draggable`]: !node.isDisabled() && node.isDraggable(),
6969
});
7070
if (node.visible) {
7171
list.push(`${componentName}__item--visible`);
@@ -132,7 +132,7 @@ export default function useTreeItem(state: TypeTreeItemState) {
132132
data-level={level}
133133
style={styles}
134134
onClick={(evt: MouseEvent) => handleClick(evt)}
135-
draggable={node.isDraggable()}
135+
draggable={!node.isDisabled() && node.isDraggable()}
136136
onDragstart={(evt: DragEvent) => handleDragStart(evt)}
137137
onDragend={(evt: DragEvent) => handleDragEnd(evt)}
138138
onDragover={(evt: DragEvent) => handleDragOver(evt)}

test/snap/__snapshots__/csr.test.js.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125428,10 +125428,10 @@ exports[`csr snapshot test > csr test ./src/tree/_example/draggable.vue 1`] = `
125428125428
</span>
125429125429
</div>
125430125430
<div
125431-
class="t-tree__item t-tree__item--open t-tree__item--draggable t-tree__item--visible"
125431+
class="t-tree__item t-tree__item--open t-is-disabled t-tree__item--visible"
125432125432
data-level="3"
125433125433
data-value="1.1.2.1"
125434-
draggable="true"
125434+
draggable="false"
125435125435
style="--level: 3;"
125436125436
>
125437125437
<span
@@ -125546,12 +125546,12 @@ exports[`csr snapshot test > csr test ./src/tree/_example/draggable.vue 1`] = `
125546125546
/>
125547125547
<span
125548125548
class="t-tree__label"
125549-
title="2.2 不允许拖放为 2.2 的子节点"
125549+
title="2.2 (不允许其它节点拖放为其子节点)"
125550125550
>
125551125551
<span
125552125552
style="position: relative;"
125553125553
>
125554-
2.2 不允许拖放为 2.2 的子节点
125554+
2.2 (不允许其它节点拖放为其子节点)
125555125555
</span>
125556125556
</span>
125557125557
</div>

0 commit comments

Comments
 (0)