sortMove.js 762 B

1234567891011121314151617181920212223242526
  1. export default {
  2. bind(el, binding, vnode) {
  3. el.draggable = true;
  4. el.addEventListener('dragstart', (event) => {
  5. event.dataTransfer.setData('text/plain', binding.value);
  6. el.classList.add('dragging');
  7. });
  8. el.addEventListener('dragend', () => {
  9. el.classList.remove('dragging');
  10. });
  11. el.addEventListener('dragover', (event) => {
  12. event.preventDefault();
  13. });
  14. el.addEventListener('drop', (event) => {
  15. event.preventDefault();
  16. const draggedIndex = event.dataTransfer.getData('text/plain');
  17. const droppedIndex = binding.value;
  18. vnode.context.handleDrop({ draggedIndex, droppedIndex });
  19. });
  20. }
  21. };