Display: Add prop to BaseAutocomplete component to allow it to be displayed as disabled

pull/5202/head
Angel Fernando Quiroz Campos 2 years ago
parent 5717847b13
commit 986821f8cb
  1. 43
      assets/vue/components/basecomponents/BaseAutocomplete.vue

@ -8,19 +8,27 @@
:suggestions="suggestions" :suggestions="suggestions"
force-selection force-selection
:option-label="optionLabel" :option-label="optionLabel"
:disabled="disabled"
@complete="onComplete" @complete="onComplete"
@item-select="$emit('item-select', $event)" @item-select="$emit('item-select', $event)"
@update:model-value="$emit('update:modelValue', $event)" @update:model-value="$emit('update:modelValue', $event)"
/> />
<label :for="id" v-t="label" /> <label
v-t="label"
:for="id"
/>
</div> </div>
<small v-if="isInvalid" v-t="helpText" class="p-error" /> <small
v-if="isInvalid"
v-t="helpText"
class="p-error"
/>
</div> </div>
</template> </template>
<script setup> <script setup>
import AutoComplete from "primevue/autocomplete"; import AutoComplete from "primevue/autocomplete"
import { ref } from "vue"; import { ref } from "vue"
const props = defineProps({ const props = defineProps({
id: { id: {
@ -53,6 +61,11 @@ const props = defineProps({
require: false, require: false,
default: false, default: false,
}, },
disabled: {
type: Boolean,
required: false,
default: false,
},
search: { search: {
type: Function, type: Function,
required: true, required: true,
@ -61,15 +74,15 @@ const props = defineProps({
optionLabel: { optionLabel: {
type: String, type: String,
required: false, required: false,
default: () => 'name', default: () => "name",
} },
}); })
defineEmits(["update:modelValue", "item-select"]); defineEmits(["update:modelValue", "item-select"])
const baseModel = ref([]); const baseModel = ref([])
const suggestions = ref([]); const suggestions = ref([])
const onComplete = (event) => { const onComplete = (event) => {
if (event.query.length >= 3) { if (event.query.length >= 3) {
@ -77,12 +90,12 @@ const onComplete = (event) => {
if (members.length > 0) { if (members.length > 0) {
suggestions.value = members suggestions.value = members
} else { } else {
let fakeSuggestion = {}; let fakeSuggestion = {}
fakeSuggestion[`${props.optionLabel}`] = event.query; fakeSuggestion[`${props.optionLabel}`] = event.query
suggestions.value = [fakeSuggestion]; suggestions.value = [fakeSuggestion]
} }
}); })
} }
}; }
</script> </script>

Loading…
Cancel
Save