120 lines
3.1 KiB
Vue
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>
|