From 2f25391bfd3145437442bb5adb839097f00ab9d0 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Thu, 6 Nov 2025 13:40:27 -0600 Subject: [PATCH] Feat: Implementar frontend completo del Informe de Comercios MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Crear página principal /informe-comercios con todos los estados (loading, error, initial, main) - Implementar componente TotalesMonetariosComercio con distribución de pagos y gráficas - Implementar componente TotalesPesoComercio con totales por tipo de café - Implementar componente TablaComerciosResumen con paginación y exportación - Agregar navegación en sidebar para Informe de Comercios con icono receipt - Integrar filtros avanzados (fechas, clientes, ubicaciones, tipos) - Incluir sistema de alertas para cambios pendientes y comercios anulados - Agregar funciones de copiar a texto/JSON en todos los componentes --- .../app/components/TablaComerciosResumen.vue | 289 ++++++++++ .../components/TotalesMonetariosComercio.vue | 224 ++++++++ .../app/components/TotalesPesoComercio.vue | 237 ++++++++ nuxt4-app/app/components/app/AppSidebar.vue | 6 + nuxt4-app/app/pages/informe-comercios.vue | 518 ++++++++++++++++++ 5 files changed, 1274 insertions(+) create mode 100644 nuxt4-app/app/components/TablaComerciosResumen.vue create mode 100644 nuxt4-app/app/components/TotalesMonetariosComercio.vue create mode 100644 nuxt4-app/app/components/TotalesPesoComercio.vue create mode 100644 nuxt4-app/app/pages/informe-comercios.vue diff --git a/nuxt4-app/app/components/TablaComerciosResumen.vue b/nuxt4-app/app/components/TablaComerciosResumen.vue new file mode 100644 index 0000000..7a09c4e --- /dev/null +++ b/nuxt4-app/app/components/TablaComerciosResumen.vue @@ -0,0 +1,289 @@ + + + diff --git a/nuxt4-app/app/components/TotalesMonetariosComercio.vue b/nuxt4-app/app/components/TotalesMonetariosComercio.vue new file mode 100644 index 0000000..cbebef8 --- /dev/null +++ b/nuxt4-app/app/components/TotalesMonetariosComercio.vue @@ -0,0 +1,224 @@ + + + diff --git a/nuxt4-app/app/components/TotalesPesoComercio.vue b/nuxt4-app/app/components/TotalesPesoComercio.vue new file mode 100644 index 0000000..90a91ea --- /dev/null +++ b/nuxt4-app/app/components/TotalesPesoComercio.vue @@ -0,0 +1,237 @@ + + + diff --git a/nuxt4-app/app/components/app/AppSidebar.vue b/nuxt4-app/app/components/app/AppSidebar.vue index 41dab94..0efab66 100644 --- a/nuxt4-app/app/components/app/AppSidebar.vue +++ b/nuxt4-app/app/components/app/AppSidebar.vue @@ -291,6 +291,12 @@ const navigationPrimary = computed(() => [ to: '/informe-ingresos', active: route.path === '/informe-ingresos' }, + { + label: 'Informe Comercios', + icon: 'i-lucide-receipt', + to: '/informe-comercios', + active: route.path === '/informe-comercios' + }, { label: 'Comparativa Cosechas', icon: 'i-lucide-calendar-range', diff --git a/nuxt4-app/app/pages/informe-comercios.vue b/nuxt4-app/app/pages/informe-comercios.vue new file mode 100644 index 0000000..344591d --- /dev/null +++ b/nuxt4-app/app/pages/informe-comercios.vue @@ -0,0 +1,518 @@ + + +