refactor(front) : volume prévisionnel en champ texte masqué + bloc adresse fournisseur aligné sur le client (radio type sans label, une colonne, required par radio) (ERP-94)

This commit is contained in:
2026-06-09 22:46:40 +02:00
parent 01a3bd6419
commit 86373f0d3c
2 changed files with 64 additions and 64 deletions
@@ -11,29 +11,64 @@
/>
<!-- Type d'adresse : radio exclusif Prospect / Depart / Rendu (RG-2.09).
Erreur portee sur `addressType` cote back (Assert\Choice + NotNull)
-> affichee sous le groupe. col-span-2 pour loger les 3 options. -->
<div class="col-span-2 flex flex-col gap-1">
<span class="text-sm font-medium">
{{ t('commercial.suppliers.form.address.addressType') }}<span class="text-red-600">&nbsp;*</span>
</span>
<div class="flex items-center gap-6">
<MalioRadioButton
v-for="opt in addressTypeOptions"
:key="opt.value"
:name="radioName"
:model-value="model.addressType"
:value="opt.value"
:label="opt.label"
:readonly="readonly"
:disabled="readonly"
group-class="mt-0"
@update:model-value="() => update('addressType', opt.value)"
/>
</div>
Une seule colonne (radios empiles), sans label de groupe ; le caractere
obligatoire est porte par chaque radio (prop `required`). L'erreur 422
(propertyPath `addressType`) s'affiche sous le groupe. -->
<div class="flex flex-col gap-2">
<MalioRadioButton
v-for="opt in addressTypeOptions"
:key="opt.value"
:name="radioName"
:model-value="model.addressType"
:value="opt.value"
:label="opt.label"
:required="true"
:readonly="readonly"
:disabled="readonly"
group-class="mt-0"
@update:model-value="() => update('addressType', opt.value)"
/>
<span v-if="errors?.addressType" class="text-sm text-red-600">{{ errors.addressType }}</span>
</div>
<!-- Sites Starseed : multiselect a tags (>= 1 obligatoire, RG-2.06). -->
<MalioSelectCheckbox
:model-value="model.siteIris"
:options="siteOptions"
:label="t('commercial.suppliers.form.address.sites')"
:display-tag="true"
:readonly="readonly"
:required="true"
:error="errors?.sites"
@update:model-value="(v: (string | number)[]) => update('siteIris', v.map(String))"
/>
<!-- Contacts rattaches (M2M, facultatif). -->
<MalioSelectCheckbox
:model-value="model.contactIris"
:options="contactOptions"
:label="t('commercial.suppliers.form.address.contacts')"
:display-tag="true"
:readonly="readonly"
@update:model-value="(v: (string | number)[]) => update('contactIris', v.map(String))"
/>
<!-- Filler : aligne le debut de ligne suivant sur la grille (le bloc client
porte ici l'email de facturation, absent cote fournisseur). -->
<div aria-hidden="true" />
<!-- Categories de type FOURNISSEUR (>= 1 obligatoire, RG-2.10). -->
<MalioSelectCheckbox
:model-value="model.categoryIris"
:options="categoryOptions"
:label="t('commercial.suppliers.form.address.categories')"
:display-tag="true"
:readonly="readonly"
:required="true"
:error="errors?.categories"
@update:model-value="(v: (string | number)[]) => update('categoryIris', v.map(String))"
/>
<MalioSelect
:model-value="model.country"
:options="countryOptions"
@@ -75,8 +110,8 @@
@update:model-value="(v: string) => update('city', v)"
/>
<!-- Adresse (BAN) + Adresse complementaire. allow-create : le texte saisi
est conserve si la BAN ne propose rien (saisie manuelle). -->
<!-- Adresse (BAN) sur 2 colonnes + Adresse complementaire. allow-create : le
texte saisi est conserve si la BAN ne propose rien (saisie manuelle). -->
<div class="col-span-2">
<MalioInputAutocomplete
v-if="!readonly"
@@ -115,43 +150,6 @@
/>
</div>
<!-- Sites Starseed (>= 1 obligatoire, RG-2.06). -->
<MalioSelectCheckbox
:model-value="model.siteIris"
:options="siteOptions"
:label="t('commercial.suppliers.form.address.sites')"
:display-tag="true"
:readonly="readonly"
:required="true"
:error="errors?.sites"
@update:model-value="(v: (string | number)[]) => update('siteIris', v.map(String))"
/>
<!-- Categories de type FOURNISSEUR (>= 1 obligatoire, RG-2.10). -->
<MalioSelectCheckbox
:model-value="model.categoryIris"
:options="categoryOptions"
:label="t('commercial.suppliers.form.address.categories')"
:display-tag="true"
:readonly="readonly"
:required="true"
:error="errors?.categories"
@update:model-value="(v: (string | number)[]) => update('categoryIris', v.map(String))"
/>
<!-- Contacts rattaches (M2M, facultatif). -->
<MalioSelectCheckbox
:model-value="model.contactIris"
:options="contactOptions"
:label="t('commercial.suppliers.form.address.contacts')"
:display-tag="true"
:readonly="readonly"
@update:model-value="(v: (string | number)[]) => update('contactIris', v.map(String))"
/>
<!-- Filler : pousse Bennes + Triage sur une nouvelle ligne (disposition maquette). -->
<div aria-hidden="true" />
<!-- Bennes : stepper (specifique fournisseur, defaut 0). -->
<MalioInputNumber
:model-value="model.bennes"