diff --git a/frontend/modules/transport/pages/carriers/[id]/edit.vue b/frontend/modules/transport/pages/carriers/[id]/edit.vue
index 0ab84ac..6d7256b 100644
--- a/frontend/modules/transport/pages/carriers/[id]/edit.vue
+++ b/frontend/modules/transport/pages/carriers/[id]/edit.vue
@@ -30,8 +30,9 @@
MalioInputText (inheritAttrs:false) renvoie `class` sur l'input. -->
main.liotPlates = sanitizeLiotPlates(v)"
+ @update:model-value="onLiotPlatesInput"
:label="t('transport.carriers.form.main.liotPlates')"
:hint="t('transport.carriers.form.main.liotPlatesHint')"
:required="true"
@@ -370,6 +371,20 @@ function onIndexationInput(value: string): void {
}
}
+// Immatriculations LIOT : la clé force le ré-affichage quand le filtrage laisse le
+// modelValue inchangé (ex: caractère interdit seul tapé) — sinon le DOM garderait
+// le caractère parasite alors que le modèle est déjà propre.
+const liotPlatesKey = ref(0)
+
+/** Saisie des immatriculations LIOT : filtre la saisie et re-synchronise si filtré. */
+function onLiotPlatesInput(value: string): void {
+ const clean = sanitizeLiotPlates(value)
+ main.liotPlates = clean
+ if (clean !== value) {
+ liotPlatesKey.value += 1
+ }
+}
+
function goBack(): void {
router.push(`/carriers/${carrierId}`)
}
diff --git a/frontend/modules/transport/pages/carriers/new.vue b/frontend/modules/transport/pages/carriers/new.vue
index 3688caf..108d9c8 100644
--- a/frontend/modules/transport/pages/carriers/new.vue
+++ b/frontend/modules/transport/pages/carriers/new.vue
@@ -33,8 +33,9 @@
`class` sur l'input interne, pas sur la cellule de grille. -->
main.liotPlates = sanitizeLiotPlates(v)"
+ @update:model-value="onLiotPlatesInput"
:label="t('transport.carriers.form.main.liotPlates')"
:hint="t('transport.carriers.form.main.liotPlatesHint')"
:required="true"
@@ -579,6 +580,20 @@ function onIndexationInput(value: string): void {
}
}
+// Immatriculations LIOT : la clé force le ré-affichage quand le filtrage laisse le
+// modelValue inchangé (ex: caractère interdit seul tapé) — sinon le DOM garderait
+// le caractère parasite alors que le modèle est déjà propre.
+const liotPlatesKey = ref(0)
+
+/** Saisie des immatriculations LIOT : filtre la saisie et re-synchronise si filtré. */
+function onLiotPlatesInput(value: string): void {
+ const clean = sanitizeLiotPlates(value)
+ main.liotPlates = clean
+ if (clean !== value) {
+ liotPlatesKey.value += 1
+ }
+}
+
/** Retour vers le repertoire transporteurs (fleche d'en-tete). */
function goBack(): void {
router.push('/carriers')