pcpuma_unam_operador/components/operador/TabMotivosEquipo.vue
2023-01-08 22:51:24 -06:00

102 lines
2.6 KiB
Vue

<template>
<b-tab-item label="Motivos">
<div class="has-text-centered">
<BotonDescargarCatalogo
campo="reporte"
:nombreArchivo="`reporte_motivos_${equipo.carrito.modulo.modulo}_${equipo.carrito.carrito}_${equipo.equipo}`"
:obtener="obtenerMotivosReporte"
v-if="operador.tipoUsuario.id_tipo_usuario === 3"
/>
</div>
<TablaMotivosEquipo
:motivos="motivos"
:page="page"
:total="total"
:isLoadingTable="isLoadingTable"
:onPageChange="onPageChange"
/>
</b-tab-item>
</template>
<script>
import axios from 'axios'
import moment from 'moment'
import BotonDescargarCatalogo from '@/components/botones/BotonDescargarCatalogo'
import TablaMotivosEquipo from '@/components/tablas/TablaMotivosEquipo'
export default {
components: { BotonDescargarCatalogo, TablaMotivosEquipo },
props: {
equipo: { type: Object, required: true, default: () => ({}) },
operador: { type: Object, required: true, default: () => ({}) },
},
data() {
return {
motivos: [],
page: 1,
total: 0,
isLoadingTable: false,
}
},
methods: {
onPageChange(page) {
this.page = page
this.obtenerMotivos()
},
obtenerMotivos() {
this.isLoadingTable = true
return axios
.get(
`${process.env.api}/equipo-motivo?pagina=${this.page}&id_equipo=${this.equipo.id_equipo}`,
this.$getToken.token()
)
.then((res) => {
this.motivos = res.data[0]
this.total = res.data[1]
this.isLoadingTable = false
})
.catch((err) => {
this.isLoadingTable = false
})
},
obtenerMotivosReporte() {
return axios
.get(
`${process.env.api}/equipo-motivo/reporte?&id_equipo=${this.equipo.id_equipo}`,
this.$getToken.token()
)
.then((res) => {
const data = []
for (let i = 0; i < res.data.length; i++)
data.push({
id_motivo: res.data[i].id_motivo,
fecha_creacion: moment(res.data[i].fecha_creacion).format(
'DD/MM/YYYY hh:mm'
),
motivo: res.data[i].motivo,
operador: res.data[i].operador.operador,
status: res.data[i].status.status,
})
return data
})
.catch((err) => {
this.$alertsGenericos.imprimirError(
this.$buefy,
this.$router,
err.response.data
)
})
},
},
watch: {
equipo() {
this.obtenerMotivos()
},
},
}
</script>
<style></style>