Le composant FormLayout — utilisé notamment par la page d'enregistrement de Dokos — permet désormais à une application hôte de placer un composant Vue personnalisé (un « part » à l'intérieur de la structure du formulaire. Un part peut s'afficher de trois manières distinctes en fonction de l'endroit où vous le placez :
L'affichage d'un part dépend de la présence d'un libellé ( label ) :
Plusieurs parts peuvent s'ancrer par rapport au même champ ou au même part. Dans ce cas, l'ordre d'affichage respecte la logique suivante :
Une section contenant uniquement un part est désormais considérée comme non vide. Le part est pris en compte dans le calcul du contenu de la section, ce qui évite qu'une section ne disparaisse par erreur.
L'exemple ci-dessous montre un formulaire de facture de vente dans lequel un indicateur personnalisé de solde client est inséré entre deux sections, et un graphique est placé dans une colonne, après le champ « Total » :
import { FormLayout, Section, Column, Part } from "@framework/ui"
export default {
components: { FormLayout, Section, Column, Part },
template: `
<FormLayout>
<Section title="Informations client">
<Column>
<Part label="Solde client" :component="CustomerBalanceWidget" />
</Column>
</Section>
<Part label="Indicateurs de paiement" :component="PaymentIndicators" />
<Section title="Montants">
<Column>
<Part :component="AmountChart" anchor="grand_total" />
</Column>
</Section>
</FormLayout>
`,
}
Dans un formulaire de facture de vente pour le client Maison Verte SARL, un part « Solde client » placé dans la colonne « Informations client » affiche en temps réel l'encours commercial. Un autre part « Indicateurs de paiement » inséré entre les sections « Informations client » et « Articles » présente un graphique de répartition des règlements par mode (virement, chèque, prélèvement).
| Cas d'usage | Emplacement | Libellé recommandé |
|---|---|---|
| Indicateur visuel (jauge, pastille) | Dans une colonne, avant un champ | Oui |
| Bloc d'information contextuelle | Entre deux sections | Oui |
| Graphique ou visualisation | Dans une colonne, après un champ de total | Non |
| Avertissement conditionnel | Avant un champ sensible | Oui |
ui/.page.form de la page d'enregistrement de Dokos v2 ; la moitié « moteur » est livrée séparément.