|
|
@@ -6,33 +6,32 @@ Liste déroulante dédiée à l'affichage d'objets Enum
|
|
|
|
|
|
<template>
|
|
|
<main>
|
|
|
-<!-- <v-skeleton-loader-->
|
|
|
-<!-- v-if="pending"-->
|
|
|
-<!-- type="list-item"-->
|
|
|
-<!-- loading-->
|
|
|
-<!-- />-->
|
|
|
+ <v-skeleton-loader
|
|
|
+ v-if="pending"
|
|
|
+ type="list-item"
|
|
|
+ loading
|
|
|
+ />
|
|
|
|
|
|
<v-select
|
|
|
+ v-else
|
|
|
:value="modelValue"
|
|
|
:label="$t(label ?? field)"
|
|
|
:items="items"
|
|
|
- item-text="label"
|
|
|
item-value="value"
|
|
|
+ item-title="label"
|
|
|
+ :no-data-text="$t('nothing-to-show') + '...'"
|
|
|
:rules="rules"
|
|
|
:disabled="readonly"
|
|
|
:error="error || !!fieldViolations"
|
|
|
:error-messages="errorMessage || (fieldViolations ? $t(fieldViolations) : '')"
|
|
|
- @change="updateViolationState($event); $emit('update:modelValue', $event.target.value)"
|
|
|
+ @update:modelValue="updateViolationState($event); $emit('update:modelValue', $event)"
|
|
|
/>
|
|
|
</main>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import {useNuxtApp} from "#app";
|
|
|
import {useFieldViolation} from "~/composables/form/useFieldViolation";
|
|
|
-import {ref, Ref} from "@vue/reactivity";
|
|
|
import {useEnumFetch} from "~/composables/data/useEnumFetch";
|
|
|
-import {Enum} from "~/types/data";
|
|
|
|
|
|
const props = defineProps({
|
|
|
/**
|
|
|
@@ -106,16 +105,21 @@ if (typeof props.enum === 'undefined') {
|
|
|
throw new Error("missing 'enum' property for input")
|
|
|
}
|
|
|
|
|
|
-const { emit } = useNuxtApp()
|
|
|
-
|
|
|
const { fieldViolations, updateViolationState } = useFieldViolation(props.field)
|
|
|
|
|
|
-const items: Ref<Enum> = ref([])
|
|
|
-
|
|
|
const { fetch } = useEnumFetch()
|
|
|
-const { data: fetched, pending } = fetch(props.enum)
|
|
|
+const { data: items, pending } = fetch(props.enum)
|
|
|
|
|
|
-items.value = fetched.value || []
|
|
|
+const onClick = () => console.log(items.value)
|
|
|
+
|
|
|
+const emit = defineEmits(['update:modelValue', 'change'])
|
|
|
+
|
|
|
+const onModelUpdate = (event: any) => {
|
|
|
+ console.log(event)
|
|
|
+ updateViolationState(event)
|
|
|
+ emit('change', event)
|
|
|
+ emit('update:modelValue', event)
|
|
|
+}
|
|
|
|
|
|
</script>
|
|
|
|