|
@@ -447,17 +447,21 @@
|
|
|
event.dataTransfer.dropEffect = 'move';
|
|
|
|
|
|
if (draggingNode && dropNode) {
|
|
|
- const data = draggingNode.node.data;
|
|
|
- if (dropType === 'before') {
|
|
|
+ const draggingNodeCopy = { data: draggingNode.node.data };
|
|
|
+ if (dropType !== 'none') {
|
|
|
draggingNode.node.remove();
|
|
|
- dropNode.node.parent.insertBefore({ data }, dropNode.node);
|
|
|
+ }
|
|
|
+ if (dropType === 'before') {
|
|
|
+ dropNode.node.parent.insertBefore(draggingNodeCopy, dropNode.node);
|
|
|
} else if (dropType === 'after') {
|
|
|
- draggingNode.node.remove();
|
|
|
- dropNode.node.parent.insertAfter({ data }, dropNode.node);
|
|
|
+ dropNode.node.parent.insertAfter(draggingNodeCopy, dropNode.node);
|
|
|
} else if (dropType === 'inner') {
|
|
|
- dropNode.node.insertChild({ data });
|
|
|
- draggingNode.node.remove();
|
|
|
+ dropNode.node.insertChild(draggingNodeCopy);
|
|
|
+ }
|
|
|
+ if (dropType !== 'none') {
|
|
|
+ this.store.registerNode(draggingNodeCopy);
|
|
|
}
|
|
|
+
|
|
|
removeClass(dropNode.$el, 'is-drop-inner');
|
|
|
|
|
|
this.$emit('node-drag-end', draggingNode.node, dropNode.node, dropType, event);
|