<template> <div class="container is-max-widescreen is-max-desktop animate__animated" :class="animation"> <pedidos-admin-tabs-secciones></pedidos-admin-tabs-secciones> <div class="block" id="pedidos-seccion" :class="seccionActiva === 'pedidos-seccion' ? 'is-active' : 'is-hidden'"> <div class="block" id="pedidos-tabla-y-dropdown" v-show="hayPedidos"> <pedidos-admin-dropdown-descargar :gdc="gdc"> </pedidos-admin-dropdown-descargar> <pedidos-admin-tabla-pedidos :pedidos="pedidos"> </pedidos-admin-tabla-pedidos> </div> <p class="has-text-centered" v-show="!hayPedidos"> Todavía no hay ningún pedido para administrar. </p> </div> <div class="block" id="bonos-seccion" :class="seccionActiva === 'bonos-seccion' ? 'is-active' : 'is-hidden'"> <pedidos-admin-tabla-bonos v-show="hayAprobados" :pedidos="pedidos"> </pedidos-admin-tabla-bonos> <p class="has-text-centered" v-show="!hayAprobados"> Todavía no hay pedidos aprobados. </p> </div> </div> </template> <script> import PedidosAdminTabsSecciones from './PedidosAdminTabsSecciones.vue'; import PedidosAdminDropdownDescargar from "./PedidosAdminDropdownDescargar.vue"; import PedidosAdminTablaBonos from './PedidosAdminTablaBonos.vue'; import PedidosAdminTablaPedidos from "./PedidosAdminTablaPedidos.vue"; export default { name: "PedidosAdminBody", components: { PedidosAdminTabsSecciones, PedidosAdminDropdownDescargar, PedidosAdminTablaPedidos, PedidosAdminTablaBonos, }, data() { return { gdc: 0, pedidos: [], tabActiva: "pedidos", seccionActiva: "pedidos-seccion" } }, computed: { hayPedidos: function() { return this.pedidos.length !== 0 }, hayAprobados: function() { return this.pedidos.filter(p => p.aprobado).length > 0 } }, methods: { fetchPedidos() { axios.get("/api/subpedidos/resources", { params: { grupo_de_compra: this.gdc }}) .then(response => { this.pedidos = response.data.data }); }, totalAprobados() { let suma = 0; let aprobados = this.pedidos.filter(p => p.aprobado); for (let i = 0; i < aprobados.length; i++) { suma += parseFloat(aprobados[i].total.replace(/,/g, '')); } return suma; }, setSeccionActiva(tabId) { this.tabActiva = tabId; this.seccionActiva = tabId + "-seccion"; } }, mounted() { Event.$on('sync-aprobacion', (_) => { this.fetchPedidos(); }); axios.get("/admin/obtener_sesion").then(response => { this.gdc = response.data.gdc; this.fetchPedidos(); }); } } </script> <style> </style>