Browse Source

add UiInputAutocompleteWithEnum

Olivier Massot 2 years ago
parent
commit
4f520a5059
2 changed files with 51 additions and 1 deletions
  1. 1 1
      components/Ui/Input/Autocomplete.vue
  2. 50 0
      components/Ui/Input/AutocompleteWithEnum.vue

+ 1 - 1
components/Ui/Input/Autocomplete.vue

@@ -12,7 +12,7 @@ Liste déroulante avec autocompletion, à placer dans un composant `UiForm`
         autocomplete="search"
         :items="items"
         :label="$t(fieldLabel)"
-        item-text="itemTextDisplay"
+        :item-title="itemTitle"
         :item-value="itemValue"
         :no-filter="noFilter"
         :auto-select-first="autoSelectFirst"

+ 50 - 0
components/Ui/Input/AutocompleteWithEnum.vue

@@ -0,0 +1,50 @@
+
+<template>
+  <UiInputAutocomplete
+      :model-value="modelValue"
+      :field="field"
+      :items="enumItems ?? []"
+      :is-loading="pending"
+      :return-object="false"
+      item-title="label"
+      item-value="value"
+      @update:model-value="$emit('update:model-value', $event)"
+  />
+</template>
+
+<script setup lang="ts">
+
+
+import {useEnumFetch} from "~/composables/data/useEnumFetch";
+
+const props = defineProps({
+  modelValue: {
+    type: String,
+    required: false,
+    default: null
+  },
+  enumName: {
+    type: String,
+    required: true
+  },
+  field: {
+    type: String,
+    required: false,
+    default: null
+  },
+  label: {
+    type: String,
+    required: false,
+    default: null
+  }
+})
+
+const { fetch } = useEnumFetch()
+
+const { data: enumItems, pending } = fetch(props.enumName)
+
+</script>
+
+<style scoped lang="scss">
+
+</style>