Konstantin18ko
@Konstantin18ko
Стоматолог

Как правильно реализовать drag and drop?

Есть библиотека.
Есть список операций:
<draggable v-model="operations" :options="{group:'operations'}">
                            <div v-for="operation in operations" :key="operation.id" class="border rounded"
                                 style="margin: 1px">
                                Дата: <b>{>operation.date_operation<}</b>
                                Фамилия: <b>{>operation.last_name<}</b>
                                <br>Диагноз: <b>{>operation.diagnosis<}</b>
                                <br>Название операции: <b>{>operation.operation_name<}</b>
                            </div>
                        </draggable>

Есть даты с операционными:
<b-tabs>
                            <b-tab v-for="(rooms, day) in period" :title="day">
                                <div v-for="room in rooms">
                                    <draggable v-model="room" :options="{group:'operations'}" class="bg-dark"
                                               style="height: 2.5px; padding: 5px; margin: 1px">
                                        <div v-for="operation in room">
                                            {>operation<}
                                        </div>
                                    </draggable>
                                </div>
                            </b-tab>
                        </b-tabs>

При перетаскивании происходит исчезает item.
До:
5b0f103e2ae14165133149.png
После:
5b0f104f08e8f915083746.png
Есть подозрение что проблемы с этим участком кода:
<div v-for="operation in room">
                                            {>operation<}
                                        </div>
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Есть подозрение что...

Не надо подозревать - надо открыть консоль, и посмотреть, что там происходит. А именно, вы должны были получить предупреждение о том, что шаблон скомпилирован с ошибкой: "You are binding v-model directly to a v-for iteration alias. This will not be able to modify the v-for source array because... бла-бла-бла".

Добавьте индекс (например, room_index) в v-for="room in rooms".

И замените v-model="room" на v-model="period[day][room_index]".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы