move(target, relative) {
    if (!this.isAllowMove(target, relative)) {
      return false
    }

    this.separation()

    switch (relative) {
      case 'top': // top
        target.parent.insertChild(target.index, this)
        return true
      case 'inner': // inner
        target.expand(true, this)
        return true
      case 'bottom': // bottom
        target.parent.insertChild(target.index + 1, this)
        return true
    }
  }
currentNode move to targetNode relative location
@param {TreeNode} target
@param {string} relative top, bottom, inner