Composant de sélection de civilité qui charge les options depuis l'API et les affiche sous forme de boutons radio horizontaux.
Utilisez le composant CivilityGroup avec un v-model :
<template>
<CivilityGroup v-model="civility" />
</template>
<script setup>
const civility = ref('');
</script>
<template>
<UForm :state="form">
<UFormGroup label="Civilité" name="civility">
<CivilityGroup v-model="form.civility" />
</UFormGroup>
</UForm>
</template>
<script setup>
const form = reactive({
civility: ''
});
</script>
Ce composant n'accepte aucune prop explicite. Il utilise defineModel pour la valeur.
| Event | Payload | Description |
|---|---|---|
update:modelValue | string | Émis lorsque l'utilisateur sélectionne une civilité (IRI de l'entité) |
Ce composant n'expose aucun slot.
<template>
<CivilityGroup v-model="selectedCivility" />
</template>
<script setup>
const selectedCivility = ref('');
</script>
<template>
<UForm :state="form" :schema="schema">
<UFormGroup label="Civilité" name="civility" required>
<CivilityGroup v-model="form.civility" />
</UFormGroup>
<UButton type="submit">Valider</UButton>
</UForm>
</template>
<script setup>
import { z } from 'zod';
const schema = z.object({
civility: z.string().min(1, 'La civilité est requise')
});
const form = reactive({
civility: ''
});
</script>
Le composant charge automatiquement les civilités depuis /api/civilities avec authentification JWT. Les données sont mises en cache via useNuxtData pour éviter les appels redondants. Le composant transforme les données de l'API en format compatible avec URadioGroup de Nuxt UI.