pcpuma_unam_operador/components/panel_admin/AdminCarrito.vue
2022-07-26 21:33:41 -05:00

112 lines
2.7 KiB
Vue

<template>
<div class="column is-4">
<h3 class="is-size-4 mb-4">Administrador</h3>
<b-field
field="status"
label="Status del carrito"
v-if="carrito.modulo.modulo"
>
<BotonDesactivar
:admin="operador"
:data="carrito"
tipo="carrito"
:cambiarStatus="cambiarStatus"
/>
</b-field>
<b-field
label="Cambiar nombre del carrito"
v-if="carrito.tipoCarrito.id_tipo_carrito"
>
<b-input
icon="list-status"
v-model="nuevoNombreCarrito"
placeholder="Nuevo nombre del carrito"
rounded
/>
</b-field>
<b-button
class="my-5"
type="is-link"
v-show="carrito.id_carrito"
@click="
$alertsGenericos.imprimirWarning(
$buefy,
`¿Estas segur@ que deseas cambiar esta información?`,
updateCarrito
)
"
:disabled="!nuevoNombreCarrito"
rounded
expanded
>
Actualizar Información
</b-button>
</div>
</template>
<script>
import axios from 'axios'
import BotonDesactivar from '@/components/operador/BotonDesactivar'
export default {
components: { BotonDesactivar },
props: {
operador: { type: Object, required: true },
carrito: { type: Object, required: true },
updateIsLoading: { type: Function, required: true },
buscar: { type: Function, required: true },
},
data() {
return {
isActivo: false,
mostrarMotivo: false,
nuevoNombreCarrito: '',
}
},
methods: {
cambiarStatus(dataSelect, status) {
const data = { id_carrito: dataSelect.id_carrito, activo: status }
this.updateIsLoading(true)
axios
.put(`${process.env.api}/carrito`, data, this.$getToken.token())
.then((res) => {
this.buscar()
this.updateIsLoading(false)
this.$alertsGenericos.imprimirMensaje(this.$buefy, res.data.message)
})
.catch((err) => {
this.updateIsLoading(false)
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
})
},
updateCarrito() {
const data = {
id_carrito: this.carrito.id_carrito,
carrito: this.nuevoNombreCarrito
? this.nuevoNombreCarrito
: this.carrito.carrito,
}
this.updateIsLoading(true)
axios
.put(`${process.env.api}/carrito`, data, this.$getToken.token())
.then((res) => {
this.buscar()
this.updateIsLoading(false)
this.$alertsGenericos.imprimirMensaje(this.$buefy, res.data.message)
})
.catch((err) => {
this.updateIsLoading(false)
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
})
},
},
}
</script>
<style></style>