Dokos introduit des améliorations significatives dans la gestion des données au sein des grilles (tableaux) et des formulaires, notamment pour les champs de type tableau (TableField) et les formulaires dynamiques (FormLayout). Ces changements permettent une meilleure traçabilité des modifications et une gestion plus intuitive des lignes dans les tableaux.
Auparavant, les modifications apportées dans un champ de formulaire n'étaient pas immédiatement identifiables comme "validées" par l'utilisateur. Désormais, chaque champ émet un événement de commit lorsqu'une modification est considérée comme définitive (par exemple, après avoir quitté le champ ou validé avec la touche Entrée).
Exemple concret :
Les tableaux (Grid) bénéficient de plusieurs améliorations pour éviter les pertes de données et clarifier les modifications :
__row_id) côté client.name définitif.name côté serveur et __row_id côté client) sont maintenant gérés dans des espaces distincts.(ligne: "ART-001", colonne: "quantite") a été mise à jour.Les formulaires contenant des tableaux imbriqués (par exemple, une commande client avec un tableau d'articles) voient leur comportement amélioré :
Scénario : Vous créez une commande pour le client Maison Verte SARL et ajoutez deux articles.
(ligne: "nouvelle_ligne_1", colonne: "quantite") avec la valeur 2.(ligne: "nouvelle_ligne_1", colonne: "prix_unitaire") avec le nouveau prix.name définitifs (ex: ART-CMD-001).Si vous personnalisez l'interface ou développez des applications sur Dokos, voici comment tirer parti de ces améliorations :
Pour réagir aux modifications validées par l'utilisateur, utilisez le canal de commit injecté dans FormLayout :
// Exemple : Réagir à un commit sur un champ spécifique
import { inject } from 'vue';
import { CommitChannel } from 'dokos-ui';
const commitChannel = inject(CommitChannel);
commitChannel.onCommit((fieldname, value) => {
if (fieldname === 'quantite') {
console.log(`Nouvelle quantité validée: ${value}`);
// Mettre à jour un champ calculé, par exemple
}
});
Lors de l'ajout de nouvelles lignes dans un tableau, assurez-vous de :
newRow pour initialiser les champs avec des valeurs par défaut.// Exemple : Initialiser une nouvelle ligne d'article avec une quantité par défaut
const newRow = {
quantite: 1,
prix_unitaire: 0.0
};
__row_id pour référencer les lignes non encore enregistrées.Si vous utilisez des dialogues pour éditer les lignes d'un tableau, assurez-vous que les commits sont émis sous les bons noms de champ :
// Exemple : Configuration d'un TableField
<TableField
:parentfield="'articles'"
:fieldname="'articles'"
:df="df"
:value="value"
@commit="handleCommit"
/>
__row_id est supprimé par le serveur). Ce comportement est intentionnel pour éviter les erreurs de suppression sur la mauvaise ligne.Les commits dans les tableaux sont émis lorsque vous quittez la cellule ou validez la modification (Entrée). Cela évite de surcharger le système avec des événements à chaque frappe.
__row_id (côté client) mais pas de name (côté serveur).name attribué par le serveur.Non, ce mécanisme est intégré au cœur de FormLayout et ne peut pas être désactivé. Cependant, vous pouvez ignorer les événements de commit si vous n'en avez pas besoin.
Cette page documente une fonctionnalité technique du framework Dodock. Pour des personnalisations avancées, consultez le guide Personnaliser l'interface.