pcpuma_unam_operador/components/tablaBuscador/TablaBuscadorModulo.vue

162 lines
4.3 KiB
Vue
Raw Normal View History

2022-07-29 05:08:49 +00:00
<template>
<div>
<h3 class="is-size-4 mb-3">Todos los módulos</h3>
2023-01-18 21:57:48 +00:00
<div class="columns mb-5 is-align-items-flex-end">
2022-07-29 05:08:49 +00:00
<SelectInstitucion
columnSize="is-3"
:deshabilitarOptVacia="false"
2022-08-15 20:58:50 +00:00
:idInstitucionPadre="idInstitucion"
2022-07-29 05:08:49 +00:00
@institucion-seleccionada="
2022-08-15 20:58:50 +00:00
(nuevaInstitucion) => (idInstitucion = nuevaInstitucion)
2022-07-29 05:08:49 +00:00
"
2023-01-18 21:57:48 +00:00
v-if="admin.tipoUsuario.id_tipo_usuario === 2"
2022-07-29 05:08:49 +00:00
/>
<BotonBuscar
columnSize="is-3"
:buscar="obtenerModulos"
2022-08-15 20:58:50 +00:00
:disabled="!idInstitucion"
2023-01-18 21:57:48 +00:00
v-if="admin.tipoUsuario.id_tipo_usuario === 2"
2022-07-29 05:08:49 +00:00
/>
2023-01-18 21:57:48 +00:00
<div>
<BotonDescargarCatalogo
campo="reporte"
:nombreArchivo="`reporte_actividad_especial`"
:obtener="obtenerActividadEspecialReporte"
/>
</div>
2022-07-29 05:08:49 +00:00
</div>
<TablaModulos
:modulos="modulos"
:isLoadingTable="isLoadingTable"
:obtenerModulos="obtenerModulos"
2023-01-09 04:51:24 +00:00
:operador="admin"
2022-07-29 05:08:49 +00:00
/>
</div>
</template>
<script>
import axios from 'axios'
2023-01-18 21:57:48 +00:00
import moment from 'moment'
2022-07-29 05:08:49 +00:00
import BotonBuscar from '@/components/botones/BotonBuscar'
2023-01-18 21:57:48 +00:00
import BotonDescargarCatalogo from '@/components/botones/BotonDescargarCatalogo'
2022-07-29 05:08:49 +00:00
import SelectInstitucion from '@/components/selects/SelectInstitucion'
import TablaModulos from '@/components/tablas/TablaModulos'
export default {
2023-01-18 21:57:48 +00:00
components: {
BotonBuscar,
BotonDescargarCatalogo,
SelectInstitucion,
TablaModulos,
},
2022-07-29 05:08:49 +00:00
props: {
2023-01-09 17:29:31 +00:00
actualizarTabla: { type: Boolean, required: true, default: false },
updateActualizarTabla: {
type: Function,
required: true,
default: () => {},
},
admin: { type: Object, required: true, default: () => ({}) },
2022-07-29 05:08:49 +00:00
},
data() {
2023-01-17 17:44:41 +00:00
return { modulos: [], isLoadingTable: false, idInstitucion: 0 }
2022-07-29 05:08:49 +00:00
},
methods: {
obtenerModulos() {
this.isLoadingTable = true
2023-01-17 17:44:41 +00:00
return this.chooseEndpoint()
2022-07-29 05:08:49 +00:00
.then((res) => {
this.modulos = res.data
this.isLoadingTable = false
})
.catch((err) => {
this.isLoadingTable = false
2022-08-05 23:41:37 +00:00
this.$alertsGenericos.imprimirError(
this.$buefy,
this.$router,
err.response.data
)
2022-07-29 05:08:49 +00:00
})
},
2023-01-18 21:57:48 +00:00
obtenerActividadEspecialReporte() {
let query = ''
if (this.idInstitucion) query = `?id_institucion=${this.idInstitucion}`
return axios
.get(
`${process.env.api}/modulo-motivo/reporte-actividad-especial${query}`,
this.$getToken.token()
)
.then((res) => {
const data = []
let resultado = 0
for (let i = 0; i < res.data.length; i++) {
resultado += res.data[i].numero_alumnos
data.push({
id_motivo: res.data[i].id_motivo,
fecha_creacion: moment(res.data[i].fecha_creacion).format(
'DD/MM/YYYY'
),
motivo: res.data[i].motivo,
numero_alumnos: res.data[i].numero_alumnos,
id_modulo: res.data[i].modulo.id_modulo,
modulo: res.data[i].modulo.modulo,
institucion: res.data[i].modulo.institucion.institucion,
operador: res.data[i].operador.operador,
})
}
data.push({
id_motivo: '',
fecha_creacion: '',
motivo: res.data.length,
numero_alumnos: resultado,
id_modulo: '',
modulo: '',
institucion: '',
operador: '',
})
return data
})
.catch((err) => {
this.$alertsGenericos.imprimirError(
this.$buefy,
this.$router,
err.response.data
)
})
},
2023-01-17 17:44:41 +00:00
chooseEndpoint() {
let data = ''
if (this.idInstitucion) data += `?id_institucion=${this.idInstitucion}`
if (this.admin.tipoUsuario.id_tipo_usuario === 2)
return axios.get(
`${process.env.api}/modulo/modulos${data}`,
this.$getToken.token()
)
else
return axios.get(
`${process.env.api}/modulo/modulos-operador`,
this.$getToken.token()
)
},
2022-07-29 05:08:49 +00:00
},
watch: {
actualizarTabla() {
if (this.actualizarTabla) {
this.obtenerModulos()
this.updateActualizarTabla(false)
}
},
},
created() {
this.obtenerModulos()
},
}
</script>