pcpuma_unam_operador/components/crear/CrearCarrito.vue

110 lines
2.9 KiB
Vue
Raw Normal View History

2022-07-29 14:16:12 +00:00
<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
2022-08-03 20:24:54 +00:00
columnSize="is-2"
2022-07-29 14:16:12 +00:00
:idInstitucion="idInstitucion"
2022-08-03 20:24:54 +00:00
:idModuloPadre="idModulo"
@modulo-seleccionado="(nuevoModulo) => (idModulo = nuevoModulo)"
2022-07-29 14:16:12 +00:00
/>
<SelectTipoCarrito
tipo="c"
2022-08-03 22:55:17 +00:00
:idTipoCarritoPadre="idTipoCarrito"
2022-07-29 14:16:12 +00:00
@tipo-carrito-seleccionado="
2022-08-03 22:55:17 +00:00
(nuevoTipoCarrito) => (idTipoCarrito = nuevoTipoCarrito)
2022-07-29 14:16:12 +00:00
"
/>
<SelectMarca
tipo="c"
2022-08-03 20:56:45 +00:00
:idMarcaPadre="idMarca"
@marca-seleccionada="(nuevaMarca) => (idMarca = nuevaMarca)"
2022-07-29 14:16:12 +00:00
/>
<SelectModelo
tipo="c"
2022-08-03 21:02:36 +00:00
:idModeloPadre="idModelo"
@modelo-seleccionado="(nuevoModelo) => (idModelo = nuevoModelo)"
2022-07-29 14:16:12 +00:00
/>
<BotonCrear
columnSize="is-3"
2022-08-03 22:55:17 +00:00
:disabled="!idMarca || !idModelo || !idModulo || !idTipoCarrito"
2022-07-29 14:16:12 +00:00
:crear="warning"
/>
</div>
</div>
</section>
</template>
<script>
import axios from 'axios'
import BotonCrear from '@/components/botones/BotonCrear'
import SelectMarca from '@/components/selects/SelectMarca'
import SelectModelo from '@/components/selects/SelectModelo'
2022-08-04 16:18:13 +00:00
import SelectModulo from '@/components/selects/SelectModulo'
2022-07-29 14:16:12 +00:00
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 {
2022-08-03 20:56:45 +00:00
idMarca: 0,
2022-08-03 21:02:36 +00:00
idModelo: 0,
2022-08-03 20:24:54 +00:00
idModulo: 0,
2022-08-03 22:55:17 +00:00
idTipoCarrito: 0,
2022-07-29 14:16:12 +00:00
}
},
methods: {
crearCarrito() {
const data = {
2022-08-03 20:56:45 +00:00
marca: 'this.idMarca',
2022-08-03 21:02:36 +00:00
modelo: 'this.idModelo',
2022-08-03 20:24:54 +00:00
id_modulo: this.idModulo,
2022-08-03 22:55:17 +00:00
id_tipo_carrito: this.idTipoCarrito,
2022-07-29 14:16:12 +00:00
}
this.updateIsLoading(true)
axios
.post(`${process.env.api}/carrito`, data, this.$getToken.token())
.then((res) => {
2022-08-03 20:56:45 +00:00
this.idMarca = 0
2022-08-03 21:02:36 +00:00
this.idModelo = 0
2022-08-03 22:55:17 +00:00
this.idModulo = 0
this.idTipoCarrito = 0
2022-07-29 14:16:12 +00:00
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() {
2022-08-03 22:55:17 +00:00
if (this.idMarca || this.idModelo || this.idModulo || this.idTipoCarrito)
2022-07-29 14:16:12 +00:00
this.$alertsGenericos.imprimirWarning(
this.$buefy,
'¿Esta segur@ de querer crear este carrito?',
this.crearCarrito
)
},
},
}
</script>