pcpuma_unam_operador/components/selects/SelectModelo.vue
2022-08-07 21:08:22 -05:00

72 lines
1.6 KiB
Vue

<template>
<b-field class="column mb-0 pb-0" label="Modelo" :class="columnSize">
<b-select
icon="barcode"
:loading="isLoadingSelect"
v-model="idModelo"
expanded
rounded
>
<option :disabled="deshabilitarOptVacia" :value="0">
Selecciona una opción
</option>
<option v-for="(m, index) in modelos" :key="index" :value="m.id_modelo">
{{ m.modelo }}
</option>
</b-select>
</b-field>
</template>
<script>
import axios from 'axios'
export default {
props: {
deshabilitarOptVacia: { typeof: Boolean, required: false, default: true },
idModeloPadre: { type: Number, required: true, default: 0 },
columnSize: { typeof: String, required: false, default: '' },
tipo: { typeof: String, required: true, default: '' },
},
data: () => {
return {
modelos: [],
isLoadingSelect: false,
idModelo: 0,
}
},
methods: {
obtenerModelos() {
this.isLoadingSelect = true
this.modelos = []
axios
.get(
`${process.env.api}/modelo?tipo=${this.tipo}`,
this.$getToken.token()
)
.then((res) => {
this.modelos = res.data
this.$emit('catalogo-modelos', this.modelos)
this.isLoadingSelect = false
})
.catch((err) => {
this.isLoadingSelect = false
})
},
},
watch: {
idModelo(modeloSeleccionado) {
this.$emit('modelo-seleccionado', modeloSeleccionado)
},
idModeloPadre(nuevoModelo) {
this.idModelo = nuevoModelo
},
},
created() {
this.obtenerModelos()
},
}
</script>
<style scoped></style>