buscar carrito listo
This commit is contained in:
parent
7fdb5e8fb0
commit
f4c3f91031
@ -19,52 +19,20 @@
|
|||||||
@modulo-seleccionado="(nuevoModulo) => (idModulo = nuevoModulo)"
|
@modulo-seleccionado="(nuevoModulo) => (idModulo = nuevoModulo)"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<b-field class="column pb-0" field="carrito" label="Carrito">
|
<SelectCarrito
|
||||||
<b-select
|
:idInstitucion="
|
||||||
v-model="idCarrito"
|
operador.tipoUsuario.id_tipo_usuario === 3
|
||||||
icon="storefront-outline"
|
? operador.institucion.id_institucion
|
||||||
rounded
|
: idInstitucion
|
||||||
expanded
|
"
|
||||||
>
|
:idModulo="idModulo"
|
||||||
<option disabled :value="null">Carrito</option>
|
:idCarritoPadre="idCarrito"
|
||||||
<optgroup label="Carritos de Chromebook">
|
@carrito-seleccionado="(nuevoCarrito) => (idCarrito = nuevoCarrito)"
|
||||||
<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
|
<BotonBuscar
|
||||||
:buscar="buscar"
|
:buscar="buscar"
|
||||||
:disabled="idCarrito === carrito.id_carrito"
|
:disabled="!idCarrito || idCarrito === carrito.id_carrito"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -91,6 +59,7 @@ import axios from 'axios'
|
|||||||
import AdminCarrito from '@/components/panel_admin/AdminCarrito'
|
import AdminCarrito from '@/components/panel_admin/AdminCarrito'
|
||||||
import BotonBuscar from '@/components/botones/BotonBuscar'
|
import BotonBuscar from '@/components/botones/BotonBuscar'
|
||||||
import InformacionCarrito from '@/components/informacion/InformacionCarrito'
|
import InformacionCarrito from '@/components/informacion/InformacionCarrito'
|
||||||
|
import SelectCarrito from '@/components/selects/SelectCarrito'
|
||||||
import SelectInstitucion from '@/components/selects/SelectInstitucion'
|
import SelectInstitucion from '@/components/selects/SelectInstitucion'
|
||||||
import SelectModulo from '@/components/selects/SelectModulo'
|
import SelectModulo from '@/components/selects/SelectModulo'
|
||||||
|
|
||||||
@ -99,6 +68,7 @@ export default {
|
|||||||
AdminCarrito,
|
AdminCarrito,
|
||||||
BotonBuscar,
|
BotonBuscar,
|
||||||
InformacionCarrito,
|
InformacionCarrito,
|
||||||
|
SelectCarrito,
|
||||||
SelectInstitucion,
|
SelectInstitucion,
|
||||||
SelectModulo,
|
SelectModulo,
|
||||||
},
|
},
|
||||||
@ -110,79 +80,40 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
carritosC: [],
|
idCarrito: 0,
|
||||||
carritosL: [],
|
idInstitucion: 0,
|
||||||
carritosI: [],
|
|
||||||
modulos: [],
|
|
||||||
idModulo: 0,
|
idModulo: 0,
|
||||||
idCarrito: null,
|
carritoParam: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
buscar() {
|
buscar() {
|
||||||
if (this.idCarrito || this.carrito.id_carrito) {
|
this.carritoParam = parseInt(this.$route.params.carrito)
|
||||||
this.updateIsLoading(true)
|
if (this.idCarrito != this.carritoParam)
|
||||||
axios
|
this.$router.push(`/carritos/buscar_carrito/${this.idCarrito}`)
|
||||||
.get(
|
this.updateIsLoading(true)
|
||||||
`${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
|
axios
|
||||||
.get(
|
.get(
|
||||||
`${process.env.api}/modulo/modulos?id_institucion=${this.operador.institucion.id_institucion}`,
|
`${process.env.api}/carrito/carrito?id_carrito=${this.idCarrito}`,
|
||||||
this.$getToken.token()
|
this.$getToken.token()
|
||||||
)
|
)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.modulos = res.data
|
if (!this.idModulo) this.idModulo = res.data.modulo.id_modulo
|
||||||
|
this.updateCarrito(res.data)
|
||||||
|
this.updateIsLoading(false)
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
this.updateIsLoading(false)
|
||||||
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
|
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() {
|
created() {
|
||||||
this.obtenerModulosInstitucion()
|
this.carritoParam = parseInt(this.$route.params.carrito)
|
||||||
this.idCarrito = this.$route.params.carrito
|
if (this.carritoParam) {
|
||||||
if (this.idCarrito) this.buscar()
|
this.idCarrito = this.carritoParam
|
||||||
|
this.buscar()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -69,9 +69,9 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
moduloParam: null,
|
|
||||||
idInstitucion: 0,
|
idInstitucion: 0,
|
||||||
idModulo: 0,
|
idModulo: 0,
|
||||||
|
moduloParam: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
108
components/selects/SelectCarrito.vue
Normal file
108
components/selects/SelectCarrito.vue
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
<template>
|
||||||
|
<b-field class="column mb-0 pb-0" label="Carrito" :class="columnSize">
|
||||||
|
<b-select
|
||||||
|
icon="store"
|
||||||
|
:loading="isLoadingSelect"
|
||||||
|
v-model="idCarrito"
|
||||||
|
expanded
|
||||||
|
rounded
|
||||||
|
>
|
||||||
|
<option v-if="!idModulo" disabled>Selecciona un módulo</option>
|
||||||
|
|
||||||
|
<option :disabled="deshabilitarOptVacia" :value="0" v-else>
|
||||||
|
Selecciona una opción
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<optgroup
|
||||||
|
v-for="(tc, index) in carritos"
|
||||||
|
:key="index"
|
||||||
|
:label="tiposCarritos[index].tipo_carrito"
|
||||||
|
v-show="mostarTipoCarrito(tc)"
|
||||||
|
>
|
||||||
|
<option v-for="(c, jndex) in tc" :key="jndex" :value="c.id_carrito">
|
||||||
|
{{ c.carrito }}
|
||||||
|
</option>
|
||||||
|
</optgroup>
|
||||||
|
</b-select>
|
||||||
|
</b-field>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import axios from 'axios'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
deshabilitarOptVacia: { typeof: Boolean, required: false, default: true },
|
||||||
|
idInstitucion: { type: Number, required: true, default: 0 },
|
||||||
|
idModulo: { type: Number, required: true, default: 0 },
|
||||||
|
idCarritoPadre: { type: Number, required: true, default: 0 },
|
||||||
|
columnSize: { typeof: String, required: false, default: '' },
|
||||||
|
},
|
||||||
|
data: () => {
|
||||||
|
return {
|
||||||
|
carritos: [],
|
||||||
|
tiposCarritos: [],
|
||||||
|
isLoadingSelect: false,
|
||||||
|
idCarrito: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
mostarTipoCarrito(carritos) {
|
||||||
|
return carritos.length > 0 ? true : false
|
||||||
|
},
|
||||||
|
async obtenerCarritos() {
|
||||||
|
const carritos = []
|
||||||
|
|
||||||
|
this.isLoadingSelect = true
|
||||||
|
for (let i = 0; i < this.tiposCarritos.length; i++) {
|
||||||
|
carritos.push([])
|
||||||
|
await axios
|
||||||
|
.get(
|
||||||
|
`${process.env.api}/carrito/carritos?pagina=1&id_institucion=${this.idInstitucion}&id_modulo=${this.idModulo}&id_tipo_carrito=${this.tiposCarritos[i].id_tipo_carrito}`,
|
||||||
|
this.$getToken.token()
|
||||||
|
)
|
||||||
|
.then((res) => {
|
||||||
|
for (let j = 0; j < res.data[0].length; j++)
|
||||||
|
carritos[i].push(res.data[0][j])
|
||||||
|
})
|
||||||
|
.catch((err) => {})
|
||||||
|
this.isLoadingSelect = false
|
||||||
|
}
|
||||||
|
this.carritos = carritos
|
||||||
|
},
|
||||||
|
obtenerTiposCarritos() {
|
||||||
|
this.tiposCarritos = []
|
||||||
|
this.carritos = []
|
||||||
|
axios
|
||||||
|
.get(
|
||||||
|
`${process.env.api}/institucion-tipo-carrito`,
|
||||||
|
this.$getToken.token()
|
||||||
|
)
|
||||||
|
.then((res) => {
|
||||||
|
this.tiposCarritos = res.data
|
||||||
|
for (let i = 0; i < this.tiposCarritos.length; i++)
|
||||||
|
this.carritos.push([])
|
||||||
|
if (this.idModulo) return this.obtenerCarritos()
|
||||||
|
})
|
||||||
|
.catch((err) => {})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
async idModulo(nuevoIdInstitucion) {
|
||||||
|
if (nuevoIdInstitucion) await this.obtenerCarritos()
|
||||||
|
},
|
||||||
|
idCarrito(carritoSeleccionado) {
|
||||||
|
this.$emit('carrito-seleccionado', parseInt(carritoSeleccionado))
|
||||||
|
},
|
||||||
|
idCarritoPadre(nuevoCarrito) {
|
||||||
|
this.idCarrito = nuevoCarrito
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (this.idCarritoPadre) this.idCarrito = this.idCarritoPadre
|
||||||
|
this.obtenerTiposCarritos()
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
Loading…
Reference in New Issue
Block a user