FormSection
Panoramica
FormSection è il componente atomico per raggruppare campi correlati con un header opzionale (titolo, sottotitolo, icona) e supporto per:
- Layout interno:
vertical(default),horizontal(flex wrap),grid(N colonne responsive) - Collapsible: clic sull'header per chiudere/aprire la sezione
- Divider: separatore visivo sotto l'header
- Slot:
headerefooterper contenuto personalizzato
DynamicFormLayouts lo usa internamente per renderizzare le sezioni dello schema, ma FormSection è esportato anche per costruire layout custom dove non serve la pipeline completa di validazione/dirty tracking.
Anteprima live
Props
| Prop | Tipo | Default | Descrizione |
|---|---|---|---|
title | string | — | Titolo della sezione |
subtitle | string | — | Sottotitolo descrittivo |
icon | string | — | Classe PrimeIcons (es. 'pi pi-user') |
layout | 'vertical' | 'horizontal' | 'grid' | 'vertical' | Disposizione interna dei campi |
columns | number | 2 | Numero colonne griglia (usato solo con layout='grid') |
collapsible | boolean | false | Sezione collassabile (clic sull'header) |
collapsed | boolean | false | Stato iniziale (v-model:collapsed) |
divider | boolean | true | Mostra divisore sotto l'header |
class | string | '' | Classi CSS aggiuntive sul container |
Eventi
| Evento | Payload | Descrizione |
|---|---|---|
update:collapsed | boolean | Cambio stato chiuso/aperto |
Slot
| Slot | Descrizione |
|---|---|
default | Contenuto della sezione (campi) |
header | Override completo dell'header |
footer | Footer della sezione |
Layout
vertical (default)
I campi sono disposti in colonna con gap-4.
horizontal
I campi sono disposti in riga con flex flex-wrap gap-4.
grid
Griglia responsive: 1 colonna su mobile, columns colonne da md (max 4).
Quando usarlo
- Dentro
DynamicFormLayoutsnon serve istanziarlo direttamente — è già wrappato attorno a ciascuna sezione dello schema con i parametri ricavati daSectionDefinition. - Standalone quando hai un form a schema fisso (no validazione condivisa, no dirty tracking) e vuoi solo il visual del header + layout.
DynamicFormListDialog
Dialog che combina lista di record esistenti + form di aggiunta inline. Gestione collezioni embedded senza data fetching — il parent passa items e gestisce add/remove via eventi.
FormSectionRow
Componente interno per il rendering di righe e campi di una sezione form, con validazione inline e modalità inplace.