<template> <div> <label class="label">Escribí el nombre de tu familia o grupo de convivencia</label> <div class="columns"> <div class="column is-two-thirds"> <div class="field"> <div class="control"> <input class="input" @input="onType" v-model="searchString"/> </div> <p class="help">Debe ser claro para que tus compas del barrio te identifiquen.</p> </div> </div> <div class="column is-one-third buttons"> <button class="button is-danger" v-if="!deshabilitado" @click="submit">Crear nuevo pedido </button> </div> </div> <div v-if="pedidos.length" class="block"> <label class="label">Si ya comenzaste a hacer tu pedido este mes, elegilo en esta lista:</label> <p class="help">Podés seguir escribiendo en el campo de arriba para refinar la búsqueda.</p> <div class="columns is-mobile" v-for="(subpedidoExistente, index) in pedidos" :class="{'has-background-grey-lighter': index % 2}" :key="index"> <div class="column is-half-mobile is-two-thirds-desktop is-two-thirds-tablet"> <p style="padding-top: calc(.5em - 1px); margin-bottom: .5rem" v-text="subpedidoExistente.nombre"></p> </div> <div class="buttons column is-half-mobile is-one-third-desktop is-one-third-tablet"> <button class="button is-danger" @click="elegirSubpedido(subpedidoExistente)">Continuar pedido </button> </div> </div> </div> </div> </template> <script> import { mapActions, mapMutations, mapState } from "vuex"; export default { async mounted() { await this.getGrupoDeCompra(); }, data() { return { searchString: null } }, computed: { ...mapState('barrio',["grupo_de_compra_id","pedidos"]), ...mapState('pedido',["nombre","pedido_id"]), deshabilitado: function () { return !this.searchString?.trim() || this.pedidos.some(p => p.nombre.toLowerCase() === this.searchString.toLowerCase()) } }, methods: { ...mapActions('barrio',["getGrupoDeCompra","getPedidos"]), ...mapActions('pedido',["crearPedido","getPedido"]), ...mapMutations('barrio',["setPedidos"]), onType() { if (!this.searchString) { this.setPedidos([]); return; } this.getPedidos(this.searchString); }, async submit() { await this.crearPedido(this.searchString, this.grupo_de_compra_id); this.guardarSubpedidoEnSesion({ id: this.pedido_id, nombre: this.nombre }); }, elegirSubpedido(subpedido) { //lo guardamos en sesion this.getPedido(subpedido.id); this.guardarSubpedidoEnSesion(subpedido); }, guardarSubpedidoEnSesion(subpedido) { axios.post("/subpedidos/guardar_sesion", { subpedido: subpedido, grupo_de_compra_id: this.grupo_de_compra_id }).then(_ => { Event.$emit('obtener-sesion') window.location.href = 'productos'; }); } } } </script>