Cambio logica para usar modulo pedidos + cambios en migas

This commit is contained in:
Alejandro Tasistro 2025-05-21 18:19:39 -03:00
parent e82dd59c34
commit 0dc8f39f07
4 changed files with 59 additions and 93 deletions

View file

@ -56,7 +56,6 @@ export default {
}, },
buscar() { buscar() {
if (this.burgerActiva) this.toggleBurger() if (this.burgerActiva) this.toggleBurger()
Event.$emit("migas-setear-como-inicio", this.$rootMiga)
Event.$emit("filtrar-productos",'nombre',this.searchString) Event.$emit("filtrar-productos",'nombre',this.searchString)
} }
}, },

View file

@ -1,8 +1,9 @@
<template> <template>
<div v-show="visible" class="column"> <div v-show="visible" class="column">
<div class="columns is-multiline is-mobile"> <div class="columns is-multiline is-mobile">
<div v-for="(categoria,i) in categorias" :key="i" class="block column is-one-quarter-desktop is-one-third-tablet is-half-mobile"> <div v-for="(categoria,i) in categorias" :key="i"
<div @click.capture="seleccionarCategoria(categoria)" class="card" style="height:100%" > class="block column is-one-quarter-desktop is-one-third-tablet is-half-mobile">
<div @click.capture="seleccionar(categoria)" class="card" style="height:100%">
<div class="card-content"> <div class="card-content">
<div class="media"> <div class="media">
<div class="media-content" style="overflow:hidden"> <div class="media-content" style="overflow:hidden">
@ -17,26 +18,21 @@
</template> </template>
<script> <script>
export default { import { mapActions, mapState } from "vuex";
export default {
name: 'CategoriasContainer', name: 'CategoriasContainer',
data() { computed: {
return { ...mapState('productos',["categorias", "filtro"]),
categorias: null, visible() {
visible: true return this.filtro === null;
} }
}, },
mounted() {
axios.get("/api/categorias").then(response => {
this.categorias = response.data;
});
Event.$emit("migas-setear-como-inicio", this.$rootMiga);
Event.$on("filtrar-productos", (_) => this.visible = false)
},
methods: { methods: {
seleccionarCategoria(categoria) { ...mapActions('productos', ["seleccionarCategoria"]),
this.visible = false; seleccionar(categoria) {
Event.$emit("filtrar-productos",'categoria',categoria); this.seleccionarCategoria({ categoria: categoria });
} Event.$emit('migas-agregar', { nombre: categoria });
} }
} }
}
</script> </script>

View file

@ -13,7 +13,8 @@
export default { export default {
data() { data() {
return { return {
migas: [] initial: [{ nombre: 'Categorías', href: '/productos' }],
migas: [{ nombre: 'Categorías', href: '/productos' }],
} }
}, },
computed: { computed: {
@ -33,7 +34,7 @@
this.migas.push(miga); this.migas.push(miga);
}); });
Event.$on('migas-reset', () => { Event.$on('migas-reset', () => {
this.migas = []; this.migas = this.initial;
}); });
Event.$on('migas-pop', () => { Event.$on('migas-pop', () => {
this.migas.pop(); this.migas.pop();

View file

@ -1,7 +1,7 @@
<template> <template>
<div v-show="visible" class="column"> <div v-show="visible" class="column">
<div class="columns is-multiline is-mobile"> <div class="columns is-multiline is-mobile">
<producto-card v-for="(producto,i) in productos" :key="i" :producto="producto"> <producto-card v-for="(producto,i) in this.productos" :key="i" :producto="producto">
</producto-card><!-- END BLOCK COLUMN --> </producto-card><!-- END BLOCK COLUMN -->
</div><!-- END COLUMNS --> </div><!-- END COLUMNS -->
</div><!-- END CONTAINER --> </div><!-- END CONTAINER -->
@ -9,51 +9,21 @@
<script> <script>
import ProductoCard from "./ProductoCard.vue"; import ProductoCard from "./ProductoCard.vue";
import { mapState } from "vuex";
export default { export default {
name: 'ProductosContainer', name: 'ProductosContainer',
components: {ProductoCard}, components: { ProductoCard },
data() {
return {
productos: [],
visible: false,
paginar: 150,
valor: null,
filtro: null
}
},
computed: { computed: {
miga: function(){ ...mapState('productos', ["productos", "filtro"]),
visible() {
return this.filtro !== null;
},
miga: function () {
return { return {
nombre: this.valor, nombre: this.valor,
href: "#" + this.valor href: "#" + this.valor
} }
} }
}, },
mounted() { }
Event.$on('filtrar-productos', (filtro,valor) => {
this.filtro = filtro
this.valor = valor
axios.get("/api/productos", {
params: this.params(filtro,valor)
}).then(response => {
this.productos = response.data.data;
this.productos.forEach(p => {
p.pivot = {};
p.pivot.cantidad = this.$root.cantidad(p);
p.pivot.notas = this.$root.notas(p);
});
});
this.visible = true;
Event.$emit("migas-agregar",this.miga);
});
},
methods: {
params(filtro,valor) {
let params = { paginar: this.paginar }
params[filtro] = valor
return params
},
}
}
</script> </script>