|
|
@@ -10,12 +10,13 @@ Case à cocher
|
|
|
fluid
|
|
|
>
|
|
|
<v-checkbox
|
|
|
- v-model="data"
|
|
|
- :value="data"
|
|
|
+ :model-value="modelValue"
|
|
|
+ :value="modelValue"
|
|
|
:label="$t(fieldLabel)"
|
|
|
:disabled="readonly"
|
|
|
- :error="error || !!violation"
|
|
|
- :error-messages="errorMessage || violation ? $t(violation) : ''"
|
|
|
+ :error="error || !!fieldViolations"
|
|
|
+ :error-messages="errorMessage || fieldViolations ? $t(fieldViolations) : ''"
|
|
|
+ @update:model-value="onUpdate($event)"
|
|
|
@change="onChange($event)"
|
|
|
/>
|
|
|
</v-container>
|
|
|
@@ -25,6 +26,10 @@ Case à cocher
|
|
|
import {useFieldViolation} from "~/composables/form/useFieldViolation";
|
|
|
|
|
|
const props = defineProps({
|
|
|
+ modelValue: {
|
|
|
+ type: Boolean,
|
|
|
+ required: false
|
|
|
+ },
|
|
|
field: {
|
|
|
type: String,
|
|
|
required: false,
|
|
|
@@ -35,10 +40,6 @@ const props = defineProps({
|
|
|
required: false,
|
|
|
default: null
|
|
|
},
|
|
|
- data: {
|
|
|
- type: Boolean,
|
|
|
- required: false
|
|
|
- },
|
|
|
readonly: {
|
|
|
type: Boolean,
|
|
|
required: false
|
|
|
@@ -54,11 +55,20 @@ const props = defineProps({
|
|
|
}
|
|
|
})
|
|
|
|
|
|
-const { emit } = useNuxtApp()
|
|
|
+const {fieldViolations, updateViolationState} = useFieldViolation(props.field)
|
|
|
+
|
|
|
+const fieldLabel: string = props.label ?? props.field
|
|
|
+
|
|
|
+const emit = defineEmits(['update:model-value', 'change'])
|
|
|
|
|
|
-const { violation, onChange } = useFieldViolation(props.field, emit)
|
|
|
+const onUpdate = (event: string) => {
|
|
|
+ emit('update:model-value', props.modelValue)
|
|
|
+}
|
|
|
|
|
|
-const fieldLabel = props.label ?? props.field
|
|
|
+const onChange = (event: Event | undefined) => {
|
|
|
+ updateViolationState(event)
|
|
|
+ emit('change', props.modelValue)
|
|
|
+}
|
|
|
|
|
|
</script>
|
|
|
|