Выбранные значения:
data: () => ({
selected: [ null, null, null ],
...
}),
Получение массивов данных для селектов:
computed: {
selectData() {
const data = Array.from({ length: this.selected.length }, () => []);
for (let { items } = this.selectors, i = 0; items && i < data.length; i++) {
data[i] = items;
items = items.find(n => n.value === this.selected[i])?.childs;
}
return data;
},
...
},
Сброс выбранных значений:
methods: {
resetSelected(index) {
for (let i = index; i < this.selected.length; i++) {
this.selected[i] = null;
}
},
...
},
Собираем всё вместе:
<v-col v-for="(n, i) in selected" cols="4">
<v-select
:items="selectData[i]"
item-text="title"
item-value="value"
v-model="selected[i]"
@change="resetSelected(i + 1)"
></v-select>
</v-col>