189 lines
5.2 KiB
Vue
189 lines
5.2 KiB
Vue
<template>
|
|
<div class="box">
|
|
<div class="columns is-align-items-flex-end">
|
|
<SelectInstitucion
|
|
:idInstitucionPadre="idInstitucion"
|
|
@institucion-seleccionada="
|
|
(nuevaInstitucion) => (idInstitucion = nuevaInstitucion)
|
|
"
|
|
v-if="operador.tipoUsuario.id_tipo_usuario === 2"
|
|
/>
|
|
|
|
<SelectModulo
|
|
:idInstitucion="
|
|
operador.tipoUsuario.id_tipo_usuario === 3
|
|
? operador.institucion.id_institucion
|
|
: idInstitucion
|
|
"
|
|
:idModuloPadre="idModulo"
|
|
@modulo-seleccionado="(nuevoModulo) => (idModulo = nuevoModulo)"
|
|
/>
|
|
|
|
<b-field class="column pb-0" field="carrito" label="Carrito">
|
|
<b-select
|
|
v-model="idCarrito"
|
|
icon="storefront-outline"
|
|
rounded
|
|
expanded
|
|
>
|
|
<option disabled :value="null">Carrito</option>
|
|
<optgroup label="Carritos de Chromebook">
|
|
<option
|
|
:disabled="!idModulo"
|
|
v-for="(carrito, index) in carritosC"
|
|
:value="carrito.id_carrito"
|
|
:key="index"
|
|
>
|
|
{{ carrito.carrito }}
|
|
</option>
|
|
</optgroup>
|
|
|
|
<optgroup label="Carritos de Laptop">
|
|
<option
|
|
:disabled="!idModulo"
|
|
v-for="(carrito, index) in carritosL"
|
|
:value="carrito.id_carrito"
|
|
:key="index"
|
|
>
|
|
{{ carrito.carrito }}
|
|
</option>
|
|
</optgroup>
|
|
|
|
<optgroup label="Carritos de Ipad">
|
|
<option
|
|
:disabled="!idModulo"
|
|
v-for="(carrito, index) in carritosI"
|
|
:value="carrito.id_carrito"
|
|
:key="index"
|
|
>
|
|
{{ carrito.carrito }}
|
|
</option>
|
|
</optgroup>
|
|
</b-select>
|
|
</b-field>
|
|
|
|
<BotonBuscar
|
|
:buscar="buscar"
|
|
:disabled="idCarrito === carrito.id_carrito"
|
|
/>
|
|
</div>
|
|
|
|
<div class="columns">
|
|
<InformacionCarrito
|
|
:operador="operador"
|
|
:carrito="carrito"
|
|
:updateIsLoading="updateIsLoading"
|
|
:buscar="buscar"
|
|
/>
|
|
|
|
<AdminCarrito
|
|
:operador="operador"
|
|
:carrito="carrito"
|
|
:updateIsLoading="updateIsLoading"
|
|
:buscar="buscar"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import axios from 'axios'
|
|
import AdminCarrito from '@/components/panel_admin/AdminCarrito'
|
|
import BotonBuscar from '@/components/botones/BotonBuscar'
|
|
import InformacionCarrito from '@/components/informacion/InformacionCarrito'
|
|
import SelectInstitucion from '@/components/selects/SelectInstitucion'
|
|
import SelectModulo from '@/components/selects/SelectModulo'
|
|
|
|
export default {
|
|
components: {
|
|
AdminCarrito,
|
|
BotonBuscar,
|
|
InformacionCarrito,
|
|
SelectInstitucion,
|
|
SelectModulo,
|
|
},
|
|
props: {
|
|
operador: { type: Object, required: true },
|
|
carrito: { type: Object, required: true },
|
|
updateIsLoading: { type: Function, required: true },
|
|
updateCarrito: { type: Function, required: true },
|
|
},
|
|
data() {
|
|
return {
|
|
carritosC: [],
|
|
carritosL: [],
|
|
carritosI: [],
|
|
modulos: [],
|
|
idModulo: 0,
|
|
idCarrito: null,
|
|
}
|
|
},
|
|
methods: {
|
|
buscar() {
|
|
if (this.idCarrito || this.carrito.id_carrito) {
|
|
this.updateIsLoading(true)
|
|
axios
|
|
.get(
|
|
`${process.env.api}/carrito/carrito?id_carrito=${
|
|
this.idCarrito || this.carrito.id_carrito
|
|
}`,
|
|
this.$getToken.token()
|
|
)
|
|
.then((res) => {
|
|
this.updateCarrito(res.data)
|
|
this.updateIsLoading(false)
|
|
if (!this.idModulo) this.idModulo = res.data.modulo.id_modulo
|
|
this.$router.push(`/carritos/buscar_carrito/${this.idCarrito}`)
|
|
})
|
|
.catch((err) => {
|
|
this.updateIsLoading(false)
|
|
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
|
|
})
|
|
}
|
|
},
|
|
obtenerModulosInstitucion() {
|
|
axios
|
|
.get(
|
|
`${process.env.api}/modulo/modulos?id_institucion=${this.operador.institucion.id_institucion}`,
|
|
this.$getToken.token()
|
|
)
|
|
.then((res) => {
|
|
this.modulos = res.data
|
|
})
|
|
.catch((err) => {
|
|
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
|
|
})
|
|
},
|
|
obtenerCarritos() {
|
|
for (let i = 0; i < 3; i++) {
|
|
axios
|
|
.get(
|
|
`${process.env.api}/carrito/carritos?pagina=1&id_institucion=${
|
|
this.operador.institucion.id_institucion
|
|
}&id_modulo=${this.idModulo}&id_tipo_carrito=${i + 1}`,
|
|
this.$getToken.token()
|
|
)
|
|
.then((res) => {
|
|
if (i + 1 === 1) this.carritosC = res.data[0]
|
|
if (i + 1 === 2) this.carritosL = res.data[0]
|
|
else this.carritosI = res.data[0]
|
|
})
|
|
.catch((err) => {
|
|
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
|
|
})
|
|
}
|
|
},
|
|
},
|
|
watch: {
|
|
idModulo() {
|
|
this.obtenerCarritos()
|
|
},
|
|
},
|
|
created() {
|
|
this.obtenerModulosInstitucion()
|
|
this.idCarrito = this.$route.params.carrito
|
|
if (this.idCarrito) this.buscar()
|
|
},
|
|
}
|
|
</script>
|