pcpuma_unam_operador/components/selects/SelectInstitucion.vue

68 lines
1.7 KiB
Vue
Raw Normal View History

2022-07-26 04:30:07 +00:00
<template>
<b-field class="column mb-0 pb-0" label="Institución" :class="columnSize">
<b-select
icon="school-outline"
:loading="isLoadingSelect"
v-model="institucion"
expanded
rounded
>
<option :disabled="deshabilitarOptVacia" :value="objVacio">
Selecciona una opción
</option>
<option v-for="(i, index) in instituciones" :key="index" :value="i">
{{ i.institucion }}
</option>
</b-select>
</b-field>
</template>
<script>
import axios from 'axios'
export default {
props: {
deshabilitarOptVacia: { typeof: Boolean, required: false, default: true },
institucionPadre: { type: Object, required: true },
columnSize: { typeof: String, required: false, default: '' },
},
data() {
return {
instituciones: [],
isLoadingSelect: false,
institucion: {},
objVacio: {},
}
},
methods: {
obtenerInstituciones() {
this.isLoadingSelect = true
this.instituciones = []
axios
.get(`${process.env.api}/institucion`, this.$getToken.token())
.then((res) => {
this.instituciones = res.data
this.$emit('catalogo-instituciones', this.instituciones)
this.isLoadingSelect = false
})
.catch((err) => {
this.isLoadingSelect = false
})
},
},
watch: {
institucion(institucionSeleccionada) {
this.$emit('institucion-seleccionada', institucionSeleccionada)
},
institucionPadre(nuevaInstitucion) {
if (this.$objIsEmpty(nuevaInstitucion)) this.modulo = this.objVacio
},
},
created() {
this.institucion = this.objVacio
this.obtenerInstituciones()
},
}
</script>