pcpuma_unam_operador/components/selects/SelectModulo.vue

79 lines
1.9 KiB
Vue
Raw Normal View History

2022-07-26 04:30:07 +00:00
<template>
<b-field class="column mb-0 pb-0" label="Módulo" :class="columnSize">
<b-select
icon="store"
:loading="isLoadingSelect"
2022-08-03 20:24:54 +00:00
v-model="idModulo"
2022-07-26 04:30:07 +00:00
expanded
rounded
>
2022-08-03 20:24:54 +00:00
<option v-if="modulos.length === 0" disabled>
Selecciona una institución
</option>
<option :disabled="deshabilitarOptVacia" :value="0" v-else>
2022-07-26 04:30:07 +00:00
Selecciona una opción
</option>
2022-08-03 20:24:54 +00:00
<option v-for="(m, index) in modulos" :key="index" :value="m.id_modulo">
2022-07-26 04:30:07 +00:00
{{ m.modulo }}
</option>
</b-select>
</b-field>
</template>
<script>
import axios from 'axios'
export default {
props: {
deshabilitarOptVacia: { typeof: Boolean, required: false, default: true },
idInstitucion: { type: Number, required: true, default: 0 },
2022-08-03 20:24:54 +00:00
idModuloPadre: { type: Number, required: true, default: 0 },
2022-07-26 04:30:07 +00:00
columnSize: { typeof: String, required: false, default: '' },
},
data: () => {
return {
modulos: [],
isLoadingSelect: false,
2022-08-03 20:24:54 +00:00
idModulo: 0,
2022-07-26 04:30:07 +00:00
}
},
methods: {
obtenerModulos() {
this.isLoadingSelect = true
this.modulos = []
axios
.get(
`${process.env.api}/modulo/modulos?id_institucion=${this.idInstitucion}`
)
.then((res) => {
this.modulos = res.data
this.$emit('catalogo-modulos', this.modulos)
this.isLoadingSelect = false
})
.catch((err) => {
this.isLoadingSelect = false
})
},
},
watch: {
idInstitucion(nuevoIdInstitucion) {
if (nuevoIdInstitucion) this.obtenerModulos()
},
2022-08-03 20:24:54 +00:00
idModulo(moduloSeleccionado) {
this.$emit('modulo-seleccionado', moduloSeleccionado)
2022-07-26 04:30:07 +00:00
},
2022-08-03 20:24:54 +00:00
idModuloPadre(nuevoModulo) {
this.idModulo = nuevoModulo
2022-07-26 04:30:07 +00:00
},
},
created() {
2022-08-03 20:24:54 +00:00
if (this.idModuloPadre) this.idModulo = this.idModuloPadre
2022-07-29 03:54:06 +00:00
if (this.idInstitucion) this.obtenerModulos()
2022-07-26 04:30:07 +00:00
},
}
</script>
<style scoped></style>