Componenti Ui

KanbanColumn

Colonna singola con drag-and-drop degli elementi.

Panoramica

KanbanColumn gestisce una singola colonna della board con drag-and-drop basato su vue-draggable-next (SortableJS). È usato internamente da KanbanBoard ma può essere istanziato direttamente per layout custom.

Anteprima live

Props

PropTipoDefaultDescrizione
columnRecord<string, unknown>—Oggetto colonna completo
columnIdstring | number—Chiave univoca della colonna
columnTitlestring—Titolo visualizzato
addItemLabelstring—Testo del pulsante "aggiungi"
itemsKanbanItem[]—Elementi della colonna
itemKeystring—Nome del campo chiave negli elementi
compressabooleanfalseRiduce la colonna a 52px, nasconde items e pulsante
itemColumnFieldstring'columnId'Campo (piatto) dell'item che indica la colonna di provenienza, usato come sourceId di moveItem
showAddItembooleantrueMostra il pulsante "aggiungi"
emptyLabelstring'Trascina qui gli elementi'Testo mostrato quando la colonna è vuota
emptyInsertThresholdnumber—Soglia in px per il drop su lista vuota (opzione SortableJS)

Emits

EventoPayloadDescrizione
moveItem(itemId, sourceId, targetId, targetIndex)Elemento spostato tra colonne o riordinato. Se l'item non ha itemColumnField, sourceId ripiega sulla colonna di destinazione: usata dentro KanbanBoard la sorgente viene invece ricavata dall'item originale
addItemcolumnIdClic sul pulsante "aggiungi"
deleteItemitemRichiesta eliminazione elemento
editItemitemRichiesta modifica elemento

Slot

SlotPropsDescrizione
column-header{ column, columnId, columnTitle, items }Header colonna custom (default: nome + conteggio + WIP)
item{ item, index, isDragging }Rendering card custom

Header di default

Se non viene fornito lo slot column-header, mostra:

  • nome colonna con bordo colorato (usa column.colore)
  • conteggio items
  • WIP limit se column.wiplimit è valorizzato (in arancione)

Area di drop

La colonna è un contenitore flex flex-col h-full e la lista draggable ha flex-1: l'intera altezza della colonna accetta il drop, anche quando è vuota. Il pulsante "aggiungi" resta ancorato in fondo.

Stato compresso

Quando compressa: true la colonna viene ridotta a 52px e gli elementi sono nascosti (con v-show, non v-if — il drag rimane funzionale). KanbanFasiBoard comprime automaticamente le fasi con finale: true al mount.