feat(front) : page ajout prestataire + formulaire principal (ERP-141) #103
Reference in New Issue
Block a user
Delete Branch "feature/ERP-141-page-ajouter-prestataire"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Empilée sur ERP-140 (#102).
Périmètre ERP-141
Écran
/providers/new— création par onglets + formulaire principal (POST).modules/technique/pages/providers/new.vue: en-tête + retour, formulaire principal (Nom, Catégorie, Site), barre d'onglets Contact · Adresse · Comptabilité (pas d'onglet Information ; Rapports/Échanges absents en création). Contenu des onglets = placeholders « À venir » (ERP-142→144).useProviderForm(): POST principal (groupeprovider:write:main, IRIs catégories/sites), pré-check front RG-3.03 (≥1 site) / RG-3.09 (≥1 catégorie), 409 doublon (RG-3.10) inline, 422 mapping par champ viauseFormErrors, orchestration des onglets (verrouillage + bascule auto sur Contact au succès),patchProvider(PATCH partiel mode strict pour les onglets à venir).useProviderReferentials(): catégories type PRESTATAIRE + sites (?pagination=false, Hydra).technique.providers.form/tab/toast.Conformité
useApi()uniquement, composantsMalio*, aucun texte FR en dur, bouton « Valider » toujours actif + erreurs sous les champs (ERP-101).Vérifications
useProviderForm).nuxi typecheck: 0 erreur sur les fichiers source du ticket.Review — RAS, bon pour merge.
Formulaire principal + orchestration des onglets propre :
useProviderForm: validation front RG-3.03 (≥1 site) / RG-3.09 (≥1 catégorie), back autoritaire (ERP-101).useFormErrors+{ toast: false }, gestion dédiée du 409 doublon (RG-3.10),companyNameomis du payload pour laisser remonter la 422 NotBlank.Malio*partout, aucun import cross-module, commentaires FR.Suggestion (mineure, non bloquante) — factoriser
submitRowsdansshared/.submitRowsest documenté comme « Miroir deuseSupplierFormErrors.submitRows» : c'est un helper agnostique de l'entité (soumission ligne à ligne d'une collection + collecte des 422 par index viamapViolationsToRecord). Il est aujourd'hui recopié verbatim entre M2 (useSupplierFormErrors) et M3 (useProviderForm). L'import cross-module étant interdit (règle n°1), sa place naturelle seraitfrontend/shared/pour éviter le drift entre les deux implémentations. À traiter dans un ticket dédié de mutualisation, pas un correctif de cette PR.845c295754to7ad44fd366