Вы должны:
1) Заменить структуру данных на рекурсивную:
data: {
"structure": [
{ name: "Prelude"},
{ name: "Verse"},
{ name: "Middle", children: [{ name: "Chorus"}, { name: "Verse"}]},
{ name: "Last Chorus"}
]
},
2) Использовать рекурсивные компоненты с помощью перетаскиваемого объекта, например:
<template>
<draggable class="dragArea" tag="ul" :list="data" :group="{ name: 'g1' }">
<li v-for="el in children" :key="el.name">
<p>{{ el.name }}</p>
<nested-draggable v-if="el.children" :tasks="el.children" />
</li>
</draggable>
</template>
См. Этот рабочий пример:
https://sortablejs.github.io/Vue.Draggable/#/nested-example