|
|
@@ -1,3 +1,9 @@
|
|
|
+<!--
|
|
|
+Champs autocomplete dédié à la recherche des access d'une structure
|
|
|
+
|
|
|
+@see https://vuetifyjs.com/en/components/autocompletes/#usage
|
|
|
+-->
|
|
|
+
|
|
|
<template>
|
|
|
<main>
|
|
|
<UiInputAutocomplete
|
|
|
@@ -6,13 +12,12 @@
|
|
|
:label="label"
|
|
|
:items="items"
|
|
|
:isLoading="pending"
|
|
|
- item-title="title"
|
|
|
- item-value="id"
|
|
|
:multiple="multiple"
|
|
|
:chips="chips"
|
|
|
+ no-filter
|
|
|
prependIcon="fas fa-magnifying-glass"
|
|
|
:return-object="false"
|
|
|
- @update:model-value="onUpdateModelvalue"
|
|
|
+ @update:model-value="$emit('update:model-value', $event)"
|
|
|
@update:search="onUpdateSearch"
|
|
|
/>
|
|
|
</main>
|
|
|
@@ -30,7 +35,7 @@ const props = defineProps({
|
|
|
* v-model
|
|
|
*/
|
|
|
modelValue: {
|
|
|
- type: [String, Number, Object, Array],
|
|
|
+ type: [Object, Array],
|
|
|
required: false,
|
|
|
default: null
|
|
|
},
|
|
|
@@ -91,16 +96,16 @@ const { fetchCollection } = useEntityFetch()
|
|
|
|
|
|
const i18n = useI18n()
|
|
|
|
|
|
-const nameFilter = ref(null)
|
|
|
+const nameFilter: Ref<string | null> = ref(null)
|
|
|
|
|
|
const query: ComputedRef<AnyJson> = computed(() => {
|
|
|
-
|
|
|
let q = props.filters.value ?? {}
|
|
|
if (nameFilter.value !== null) {
|
|
|
q['fullname'] = nameFilter.value
|
|
|
}
|
|
|
+ q['groups[]'] = 'access_people_ref'
|
|
|
|
|
|
- return { ...q, ...{ 'groups[]': 'access_people_ref' } }
|
|
|
+ return q
|
|
|
})
|
|
|
|
|
|
const { data: collection, pending, refresh } = await fetchCollection(Access, null, query)
|
|
|
@@ -122,19 +127,10 @@ const items: ComputedRef<Array<{ id: number | string, title: string }>> = comput
|
|
|
|
|
|
const emit = defineEmits(['update:model-value'])
|
|
|
|
|
|
-const onUpdateModelvalue = (event: Array<number>) => {
|
|
|
- console.log(event)
|
|
|
- emit('update:model-value', event)
|
|
|
-}
|
|
|
-
|
|
|
const onUpdateSearch = (event: string) => {
|
|
|
- if (event.length <= 2) {
|
|
|
- return
|
|
|
- }
|
|
|
+ nameFilter.value = event
|
|
|
refresh()
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|