#vuejs
Что я хочу сделать, это перенести столбцы в таблице, допустим как в exel это реализовано. Если взять весь столбец и переместить его допусти из B в A, то весь столбец перенесется вместе с данными. Немного непонятно, как делается это во vue, да и логика непонятна: как должно это выглядеть, так чтобы перенеслось и состояние столбцов сохранилось. Моя песочница без самой реализации https://codesandbox.io/s/pyvjxxnnvj в файле App.vue:27 если добавить атрибут draggable из библиотеки https://github.com/SortableJS/Vue.Draggable, то я могу только header столбца переносить, а не весь столбец. Пример:То я получу вот такой результат: Типа такого надо https://akottr.github.io/dragtable/, только на vue. {{ column.label }}
Ответы
Ответ 1
Вот пример реализации. При разработке использовался обычный тег table, а для перемещения колонок методы mousedown, mouseover, mouseup. Для начала перемещения используется событие mousedown (момент, когда кнопка мыши нажата, но еще не отпущена). При событии mouseover происходит обмен соседними колонками ( момент наведения мыши на другую колонку ) При событии mouseup происходит завершение обмена. Для анимации перемещения (обмена) взят пример из документации vue js. Так как данные таблицы передается в компонент через свойства (props), то при завершении обмена вызывается $emit sort с новым порядком колонок. Соответственно, в родителе происходит обновление порядка колонок по событию sort. Код: Удачного программирования.
Комментариев нет:
Отправить комментарий