phphe / vue-draggable-nested-tree

Vue2 draggable tree component
https://hetree.phphe.com/
MIT License
345 stars 62 forks source link

Is there a way to prevent the placeholder appearing when dragging into root level? #26

Open flight9 opened 6 years ago

flight9 commented 6 years ago

Our project have a constraint that there should only be one node at the root level. So we use following codes to prevent that happening, it works:

dragEndHook(node) {
  return !node._vm.store.dplh.parent.isRoot; // return false to stop dropping
}

But we found the placeHolder still appears at root level, that may mislead our users by let them think the root level is permitted for node to be dropped. Is there a way to prevent the placeholder appearing?

version: vue-draggable-nested-tree 2.1.6

phphe commented 6 years ago

set rootnode.droppable = false

flight9 commented 6 years ago

@phphe I overwitten the dragstart hook with following codes, but the placeHolder still appears at root level.

    dragStartHook(node) {
      const rootNode = node._vm.store.rootData; // guess I got rootNode correctly
      this.$set(rootNode, 'droppable', false);
    },

Before dragging: before-test2-rootlevel-2122534351

While dragging: after-test2-rootlevel-2122252536

phphe commented 6 years ago

this is a bug. rootnode can't be set droppable false now. i will try to resolve it.

flight9 commented 6 years ago

@phphe thanks for confirming

phphe commented 6 years ago

latest 2.1.7 should solve that