From 1d33bae5586dbbd3f09d0637c2bbe2d3be6da24f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=A5=95?= Date: Sat, 21 Apr 2018 15:02:22 +0800 Subject: [PATCH] Tree: fix allowDrop's type behavior (#10821) --- packages/tree/src/tree.vue | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/tree/src/tree.vue b/packages/tree/src/tree.vue index 0fad5f32c..4642c05bf 100644 --- a/packages/tree/src/tree.vue +++ b/packages/tree/src/tree.vue @@ -354,7 +354,6 @@ const draggingNode = dragState.draggingNode; if (!draggingNode || !dropNode) return; - let allowDrop = true; let dropPrev = true; let dropInner = true; let dropNext = true; @@ -362,18 +361,17 @@ dropPrev = this.allowDrop(draggingNode.node, dropNode.node, 'prev'); dropInner = this.allowDrop(draggingNode.node, dropNode.node, 'inner'); dropNext = this.allowDrop(draggingNode.node, dropNode.node, 'next'); - allowDrop = dropInner; } - dragState.allowDrop = allowDrop; - event.dataTransfer.dropEffect = allowDrop ? 'move' : 'none'; - if (allowDrop && oldDropNode !== dropNode) { + dragState.allowDrop = dropInner; + event.dataTransfer.dropEffect = dropInner ? 'move' : 'none'; + if ((dropPrev || dropInner || dropNext) && oldDropNode !== dropNode) { if (oldDropNode) { this.$emit('node-drag-leave', draggingNode.node, oldDropNode.node, event); } this.$emit('node-drag-enter', draggingNode.node, dropNode.node, event); } - if (allowDrop) { + if (dropPrev || dropInner || dropNext) { dragState.dropNode = dropNode; }