pcpuma_unam_operador/components/crear/CrearCarrito.vue
2022-08-03 15:56:45 -05:00

120 lines
3.1 KiB
Vue

<template>
<section class="mb-6">
<h3 class="is-size-4 mb-3">Crear carrito</h3>
<div class="box">
<div class="columns is-align-items-flex-end pl-0 pb-4">
<SelectModulo
columnSize="is-2"
:idInstitucion="idInstitucion"
:idModuloPadre="idModulo"
@modulo-seleccionado="(nuevoModulo) => (idModulo = nuevoModulo)"
/>
<SelectTipoCarrito
tipo="c"
:tipoCarritoPadre="tipoCarrito"
@tipo-carrito-seleccionado="
(nuevoTipoCarrito) => (tipoCarrito = nuevoTipoCarrito)
"
/>
<SelectMarca
tipo="c"
:idMarcaPadre="idMarca"
@marca-seleccionada="(nuevaMarca) => (idMarca = nuevaMarca)"
/>
<SelectModelo
tipo="c"
:modeloPadre="modelo"
@modelo-seleccionado="(nuevoModelo) => (modelo = nuevoModelo)"
/>
<BotonCrear
columnSize="is-3"
:disabled="
!idMarca ||
!modelo.id_modelo ||
!idModulo ||
!tipoCarrito.id_tipo_carrito
"
:crear="warning"
/>
</div>
</div>
</section>
</template>
<script>
import axios from 'axios'
import BotonCrear from '@/components/botones/BotonCrear'
import SelectMarca from '@/components/selects/SelectMarca'
import SelectModulo from '@/components/selects/SelectModulo'
import SelectModelo from '@/components/selects/SelectModelo'
import SelectTipoCarrito from '@/components/selects/SelectTipoCarrito'
export default {
components: {
BotonCrear,
SelectMarca,
SelectModelo,
SelectModulo,
SelectTipoCarrito,
},
props: {
updateActualizarTabla: { type: Function, required: true },
updateIsLoading: { type: Function, required: true },
idInstitucion: { type: Number, required: true, default: 0 },
},
data() {
return {
idMarca: 0,
modelo: {},
idModulo: 0,
tipoCarrito: {},
}
},
methods: {
crearCarrito() {
const data = {
marca: 'this.idMarca',
modelo: this.modelo.modelo,
id_modulo: this.idModulo,
id_tipo_carrito: this.tipoCarrito.id_tipo_carrito,
}
this.updateIsLoading(true)
axios
.post(`${process.env.api}/carrito`, data, this.$getToken.token())
.then((res) => {
this.idMarca = 0
this.modelo = {}
this.idmodulo = 0
this.tipoCarrito = {}
this.updateActualizarTabla(true)
this.updateIsLoading(false)
this.$alertsGenericos.imprimirMensaje(this.$buefy, res.data.message)
})
.catch((err) => {
this.updateIsLoading(false)
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
})
},
warning() {
if (
this.idMarca ||
this.modelo.id_modelo ||
this.idModulo ||
this.tipoCarrito.id_tipo_carrito
)
this.$alertsGenericos.imprimirWarning(
this.$buefy,
'¿Esta segur@ de querer crear este carrito?',
this.crearCarrito
)
},
},
}
</script>