Draggable

Daftar yang dapat diurutkan ulang lewat mouse, sentuhan, atau keyboard tanpa dependensi tambahan.

Dasar

Hubungkan daftar melalui v-model. Tarik ikon grip untuk memindahkan item, atau fokuskan handle lalu gunakan keyboard. Data asal tidak dimutasi; komponen mengirim array baru setelah item diletakkan.

Verifikasi data pelanggan

Pastikan alamat dan kontak dapat dihubungi.

Timbang material

Catat berat bersih setiap kategori material.

Proses pembayaran

Kirim nilai akhir ke metode pembayaran pelanggan.

Tekan Enter atau Spasi untuk mengangkat item, gunakan tombol panah untuk memindahkan, lalu tekan Enter atau Spasi untuk meletakkan. Tekan Escape untuk membatalkan.

Urutan: Verifikasi data pelanggan → Timbang material → Proses pembayaran

Variant dan item nonaktif

Variant bordered menyatukan item dalam satu rangka, separated membuat kartu terpisah, dan ghost cocok untuk susunan yang sudah memiliki wadah. item-disabled mengunci item yang belum boleh dipindahkan.

Bordered

Sampah masuk18
Pemilahan7
Pengolahan12

Tekan Enter atau Spasi untuk mengangkat item, gunakan tombol panah untuk memindahkan, lalu tekan Enter atau Spasi untuk meletakkan. Tekan Escape untuk membatalkan.

Ghost dan ukuran sm

Sampah masuk
Pemilahan
Pengolahan

Tekan Enter atau Spasi untuk mengangkat item, gunakan tombol panah untuk memindahkan, lalu tekan Enter atau Spasi untuk meletakkan. Tekan Escape untuk membatalkan.

Dipakai di Table

W4cTable memakai perilaku pengurutan yang sama melalui prop draggable dan v-model:rows. Contoh lengkapnya tersedia di halaman Table.

API

Props

PropTipeDefaultKeterangan
modelValueRecord<string, unknown>[][]Daftar terurut, mendukung v-model.
itemKeystring | (item, index) => string | number'id'Properti atau fungsi yang menghasilkan kunci stabil item.
itemLabelstring | (item, index) => stringlabel, title, atau keyNama item untuk tombol handle dan pengumuman pembaca layar.
itemDisabled(item, index) => booleanundefinedMencegah item tertentu diangkat dan dipindahkan.
disabledbooleanfalseMenonaktifkan seluruh interaksi pengurutan.
size'sm' | 'md' | 'lg''md'Tinggi item, ruang dalam, dan ukuran handle.
variant'bordered' | 'separated' | 'ghost''separated'Susunan visual item.
handleLabelstring'Ubah urutan'Awalan nama aksesibel tombol drag handle.

Slots

SlotTipeDefaultKeterangan
item{ item, index, dragging }—Isi setiap item di samping handle.
handle{ item, index, dragging }—Mengganti ikon grip di dalam tombol handle.

Events

EventTipeDefaultKeterangan
update:modelValue(items) => void—Array baru setelah item selesai dipindahkan.
reorder({ item, oldIndex, newIndex, items }) => void—Detail perubahan urutan yang sudah disimpan.
dragStart(item, index) => void—Dipicu ketika item diangkat.
dragEnd(item, index, cancelled) => void—Dipicu ketika item diletakkan atau dibatalkan.