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() {
if (this.burgerActiva) this.toggleBurger()
Event.$emit("migas-setear-como-inicio", this.$rootMiga)
Event.$emit("filtrar-productos",'nombre',this.searchString)
}
},

View file

@ -1,8 +1,9 @@
<template>
<div v-show="visible" class="column">
<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 @click.capture="seleccionarCategoria(categoria)" class="card" style="height:100%" >
<div v-for="(categoria,i) in categorias" :key="i"
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="media">
<div class="media-content" style="overflow:hidden">
@ -17,25 +18,20 @@
</template>
<script>
import { mapActions, mapState } from "vuex";
export default {
name: 'CategoriasContainer',
data() {
return {
categorias: null,
visible: true
computed: {
...mapState('productos',["categorias", "filtro"]),
visible() {
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: {
seleccionarCategoria(categoria) {
this.visible = false;
Event.$emit("filtrar-productos",'categoria',categoria);
...mapActions('productos', ["seleccionarCategoria"]),
seleccionar(categoria) {
this.seleccionarCategoria({ categoria: categoria });
Event.$emit('migas-agregar', { nombre: categoria });
}
}
}

View file

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

View file

@ -1,7 +1,7 @@
<template>
<div v-show="visible" class="column">
<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 -->
</div><!-- END COLUMNS -->
</div><!-- END CONTAINER -->
@ -9,20 +9,15 @@
<script>
import ProductoCard from "./ProductoCard.vue";
import { mapState } from "vuex";
export default {
name: 'ProductosContainer',
components: { ProductoCard },
data() {
return {
productos: [],
visible: false,
paginar: 150,
valor: null,
filtro: null
}
},
computed: {
...mapState('productos', ["productos", "filtro"]),
visible() {
return this.filtro !== null;
},
miga: function () {
return {
nombre: this.valor,
@ -30,30 +25,5 @@ export default {
}
}
},
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>