Skip to content

Commit afa67bb

Browse files
committed
fix(maxlevel): fix maxLevel does not work for external drag
affects: @he-tree/vue
1 parent 17be6da commit afa67bb

File tree

1 file changed

+18
-21
lines changed

1 file changed

+18
-21
lines changed

packages/he-tree-vue/src/components/DraggableTree.ts

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -666,29 +666,26 @@ const cpt = defineComponent({
666666
return;
667667
}
668668
// check max level
669-
if (
670-
startTree &&
671-
targetTree!.maxLevel != null &&
672-
targetTree!.maxLevel > 0
673-
) {
674-
const dragNode = startTree.dragNode!;
675-
let childMaxLevel = 0;
676-
hp.walkTreeData(
677-
dragNode,
678-
(node) => {
679-
if (node!.level > childMaxLevel) {
680-
childMaxLevel = node!.level;
669+
if (targetTree!.maxLevel != null && targetTree!.maxLevel > 0) {
670+
let dragNodeWithChildLevel = 1;
671+
if (startTree) {
672+
const dragNode = startTree.dragNode!;
673+
let childMaxLevel = 0;
674+
hp.walkTreeData(
675+
dragNode,
676+
(node) => {
677+
if (node!.level > childMaxLevel) {
678+
childMaxLevel = node!.level;
679+
}
680+
},
681+
{
682+
childrenKey: CHILDREN,
681683
}
682-
},
683-
{
684-
childrenKey: CHILDREN,
685-
}
686-
);
684+
);
685+
dragNodeWithChildLevel = childMaxLevel - dragNode.level + 1;
686+
}
687687
const willLevel =
688-
childMaxLevel -
689-
dragNode.level +
690-
1 +
691-
(dp.parent ? dp.parent.level : 0);
688+
dragNodeWithChildLevel + (dp.parent ? dp.parent.level : 0);
692689
if (willLevel > targetTree!.maxLevel) {
693690
setDroppable(false);
694691
return;

0 commit comments

Comments
 (0)