pcpuma_unam_operador/components/admin/TablaModulos.vue

86 lines
2.2 KiB
Vue
Raw Normal View History

<template>
<b-table
:data="data"
:loading="isLoadingTable"
2022-07-08 08:19:56 +00:00
:selected.sync="selectedModulo"
:row-class="(row, index) => 'pointer'"
@details-open="(row, index) => obtenerCarritos(row.id_modulo)"
show-detail-icon
paginated
detailed
>
2022-06-20 00:35:50 +00:00
<b-table-column field="modulo" label="Módulo" v-slot="props" centered>
<span>{{ props.row.modulo }}</span>
</b-table-column>
2022-07-12 19:55:44 +00:00
<b-table-column field="activo" label="Activo" v-slot="props" centered>
<span>{{ props.row.activo ? 'Activo' : 'Inactivo' }}</span>
</b-table-column>
2022-07-08 08:19:56 +00:00
<template #detail>
<TablaCarritos
:operador="admin"
:carritos="carritos"
:isLoadingTable="isLoadingTable"
/>
</template>
</b-table>
</template>
<script>
import axios from 'axios'
2022-06-18 03:27:06 +00:00
import BotonDesactivar from '@/components/operador/BotonDesactivar'
2022-07-08 08:19:56 +00:00
import TablaCarritos from '@/components/operador/TablaCarritos'
export default {
2022-06-18 03:27:06 +00:00
components: {
BotonDesactivar,
2022-07-08 08:19:56 +00:00
TablaCarritos,
2022-06-18 03:27:06 +00:00
},
props: {
2022-06-18 03:27:06 +00:00
admin: { typeof: Object, require: true },
2022-06-21 16:39:01 +00:00
data: { type: Array, required: true },
2022-07-04 06:06:28 +00:00
updateIsLoading: { type: Function, require: true },
2022-06-21 16:39:01 +00:00
obtenerCatalogoModulo: { type: Function, required: true },
updateActualizarTabla: { type: Function, required: true },
actualizarTabla: { type: Boolean, required: true },
},
data() {
return {
2022-07-08 08:19:56 +00:00
selectedModulo: {},
isLoadingTable: false,
2022-07-08 08:19:56 +00:00
carritos: [],
}
},
methods: {
2022-07-08 08:19:56 +00:00
obtenerCarritos(id_modulo) {
this.isLoadingTable = true
axios
.get(
`${process.env.api}/carrito/carritos?pagina=1&id_institucion=${this.admin.institucion.id_institucion}&id_modulo=${id_modulo}`
)
.then(async (res) => {
this.carritos = res.data[0]
this.isLoadingTable = false
})
.catch((err) => {
this.isLoadingTable = false
2022-07-11 14:15:10 +00:00
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
2022-07-08 08:19:56 +00:00
})
},
},
watch: {
selectedModulo() {
this.$router.push({
path: 'buscar_modulo/' + this.selectedModulo.id_modulo,
})
},
},
}
</script>
2022-07-08 08:19:56 +00:00
<style>
.pointer {
cursor: pointer;
}
</style>