pcpuma_unam_operador/components/tablaBuscador/TablaBuscadorEquipo.vue

187 lines
5.4 KiB
Vue
Raw Normal View History

2022-07-29 15:53:56 +00:00
<template>
<div>
<h3 class="is-size-4 mb-3">Todos los equipos</h3>
<div class="columns mb-5 is-align-items-flex-end">
2022-08-03 20:24:54 +00:00
<!-- <SelectInstitucion
:idInstitucionPadre="idInstitucion"
2022-07-29 15:53:56 +00:00
@institucion-seleccionada="
2022-08-03 20:24:54 +00:00
(nuevaInstitucion) => (idInstitucion = nuevaInstitucion)
2022-07-29 15:53:56 +00:00
"
v-if="operador.tipoUsuario.id_tipo_usuario === 2"
2022-08-03 20:24:54 +00:00
/> -->
2022-07-29 15:53:56 +00:00
<SelectModulo
2022-08-03 20:24:54 +00:00
columnSize="is-3"
2022-07-29 15:53:56 +00:00
:deshabilitarOptVacia="false"
:idInstitucion="
2022-08-03 20:24:54 +00:00
operador.tipoUsuario.id_tipo_usuario === 3
? operador.institucion.id_institucion
: idInstitucion
2022-07-29 15:53:56 +00:00
"
2022-08-03 20:24:54 +00:00
:idModuloPadre="idModulo"
@modulo-seleccionado="(nuevoModulo) => (idModulo = nuevoModulo)"
2022-07-29 15:53:56 +00:00
/>
<SelectTipoCarrito
:deshabilitarOptVacia="false"
:tipoCarritoPadre="tipoCarrito"
@tipo-carrito-seleccionado="
(tipoCarritoModulo) => (tipoCarrito = tipoCarritoModulo)
"
/>
<b-field class="column mb-0 pb-0" label="Carrito">
<b-input
icon="account"
placeholder="Carrito"
type="text"
@keyup.enter.native="obtenerEquipos()"
v-model="carrito"
rounded
/>
</b-field>
<b-field class="column mb-0 pb-0" label="Carrito">
<b-input
icon="account"
placeholder="Carrito"
type="text"
@keyup.enter.native="obtenerEquipos()"
v-model="carrito"
rounded
/>
</b-field>
<b-field class="column mb-0 pb-0" label="Equipo">
<b-input
icon="account"
placeholder="Equipos"
type="text"
@keyup.enter.native="obtenerEquipos()"
v-model="equipo"
rounded
/>
</b-field>
<BotonBuscar
:buscar="obtenerEquipos"
:disabled="
institucion.id_institucion ||
operador.institucion.id_institucion ||
operador
? false
: true
"
/>
</div>
<TablaEquipos
:equipos="equipos"
:isLoadingTable="isLoadingTable"
:obtenerEquipos="obtenerEquipos"
:onPageChange="onPageChange"
:total="total"
:page="page"
columnaActivo
columnaInstitucion
/>
</div>
</template>
<script>
import axios from 'axios'
import BotonBuscar from '@/components/botones/BotonBuscar'
import SelectInstitucion from '@/components/selects/SelectInstitucion'
import SelectModulo from '@/components/selects/SelectModulo'
import SelectTipoCarrito from '@/components/selects/SelectTipoCarrito'
import TablaEquipos from '@/components/tablas/TablaEquipos'
export default {
components: {
BotonBuscar,
SelectInstitucion,
SelectModulo,
SelectTipoCarrito,
TablaEquipos,
},
props: { operador: { type: Object, required: true } },
data() {
return {
equipos: [],
isLoadingTable: false,
2022-08-03 20:24:54 +00:00
idModulo: 0,
2022-07-29 15:53:56 +00:00
page: 1,
total: 0,
institucion: {},
lastSearch: {},
tipoCarrito: {},
carrito: '',
equipo: '',
}
},
methods: {
obtenerEquipos() {
let data = ''
this.isLoadingTable = true
if (
2022-08-02 06:09:21 +00:00
(this.operador.tipoUsuario.id_tipo_usuario > 2 &&
2022-07-29 15:53:56 +00:00
this.operador.institucion.id_institucion !=
this.lastSearch.idInstitucion) ||
2022-08-02 06:09:21 +00:00
(this.operador.tipoUsuario.id_tipo_usuario === 2 &&
this.institucion.id_institucion &&
2022-07-29 15:53:56 +00:00
this.institucion.id_institucion != this.lastSearch.idInstitucion) ||
this.carrito != this.lastSearch.carrito ||
2022-08-03 20:24:54 +00:00
this.idModulo != this.lastSearch.idModelo ||
2022-07-29 15:53:56 +00:00
this.tipoCarrito.id_tipo_carrito != this.lastSearch.idTipoCarrito
) {
this.page = 1
2022-08-02 06:09:21 +00:00
if (this.operador.tipoUsuario.id_tipo_usuario > 2)
2022-08-03 20:24:54 +00:00
this.lastSearch.idInstitucion = this.operador.institucion.id_institucion
2022-08-02 06:09:21 +00:00
else if (this.institucion.id_institucion)
2022-07-29 15:53:56 +00:00
this.lastSearch.idInstitucion = this.institucion.id_institucion
2022-08-03 20:24:54 +00:00
this.lastSearch.idModulo = this.idModulo
2022-07-29 15:53:56 +00:00
this.lastSearch.idTipoCarrito = this.tipoCarrito.id_tipo_carrito
2022-08-02 06:09:21 +00:00
this.lastSearch.carrito = this.carrito
2022-07-29 15:53:56 +00:00
}
if (this.operador.institucion.id_institucion)
data += `&id_institucion=${this.operador.institucion.id_institucion}`
else if (this.institucion.id_institucion)
data += `&id_institucion=${this.institucion.id_institucion}`
2022-08-03 20:24:54 +00:00
if (this.idModulo) data += `&id_modulo=${this.idModulo}`
2022-07-29 15:53:56 +00:00
if (this.tipoCarrito.id_tipo_carrito)
data += `&id_tipo_carrito=${this.tipoCarrito.id_tipo_carrito}`
if (this.tipoCarrito.id_tipo_carrito)
data += `&id_tipo_carrito=${this.tipoCarrito.id_tipo_carrito}`
if (this.carrito) data += `&carrito=${this.carrito}`
if (this.equipo) data += `&equipo=${this.equipo}`
axios
.get(
2022-08-02 06:09:21 +00:00
`${process.env.api}/equipo/equipos?pagina=${this.page}${data}`,
2022-07-29 15:53:56 +00:00
this.$getToken.token()
)
.then((res) => {
this.equipos = res.data[0]
this.total = res.data[1]
this.isLoadingTable = false
})
.catch((err) => {
this.isLoadingTable = false
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
})
},
onPageChange(page) {
this.page = page
this.obtenerEquipos()
},
updateInstitucion(institucion) {
this.institucion = institucion
},
},
created() {
this.obtenerEquipos()
},
}
</script>