pcpuma_unam_operador/components/tablaBuscador/TablaBuscadorInstitucion.vue
2022-08-05 18:41:37 -05:00

77 lines
1.9 KiB
Vue

<template>
<div>
<h3 class="is-size-4 mb-3">Todas las instituciones</h3>
<div class="columns mb-5 is-align-items-flex-end">
<SelectInstitucion
columnSize="is-4"
:idInstitucionPadre="idInstitucion"
@institucion-seleccionada="
(nuevaInstitucion) => (idInstitucion = nuevaInstitucion)
"
/>
<BotonBuscar
columnSize="is-4"
:buscar="obtenerInstituciones"
:disabled="idInstitucion ? false : true"
/>
</div>
<TablaInstituciones
:instituciones="instituciones"
:total="instituciones.length"
:isLoadingTable="isLoadingTable"
:obtenerInstituciones="obtenerInstituciones"
/>
</div>
</template>
<script>
import axios from 'axios'
import BotonBuscar from '@/components/botones/BotonBuscar'
import SelectInstitucion from '@/components/selects/SelectInstitucion'
import TablaInstituciones from '@/components/tablas/TablaInstituciones'
export default {
components: { BotonBuscar, SelectInstitucion, TablaInstituciones },
data() {
return {
instituciones: [],
isLoadingTable: false,
idInstitucion: 0,
}
},
methods: {
obtenerInstituciones() {
let data = ''
this.isLoadingTable = true
if (this.idInstitucion) data = `?id_intitucion=${this.idInstitucion}`
axios
.get(
`${process.env.api}/institucion/instituciones${data}`,
this.$getToken.token()
)
.then((res) => {
this.instituciones = []
for (let i = 0; i < res.data.length; i++)
if (res.data[i].responsable) this.instituciones.push(res.data[i])
this.isLoadingTable = false
})
.catch((err) => {
this.isLoadingTable = false
this.$alertsGenericos.imprimirError(
this.$buefy,
this.$router,
err.response.data
)
})
},
},
created() {
this.obtenerInstituciones()
},
}
</script>