Files
analiticaNucleo/nuxt4-app/app/app.vue
josedario87 63c7043664
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 47s
Feat: Agregar botones de Copiar Texto y Copiar JSON
Implementa funcionalidad de copia en tres secciones del Informe:

📋 Funcionalidades agregadas:
1. Lista de Ingresos
   - Copiar Texto: Formato WhatsApp con emojis y legible
   - Copiar JSON: Formato estructurado para sistemas

2. Top 10 Clientes
   - Copiar Texto: Ranking formateado con métricas
   - Copiar JSON: Array de objetos con datos completos

3. Serie Temporal Acumulada
   - Copiar Texto: Evolución temporal con emojis
   - Copiar JSON: Datos completos para análisis

 Características:
- Botones con iconos (i-lucide-copy y i-lucide-code)
- Disabled cuando no hay datos disponibles
- Alertas de confirmación al copiar
- Formato texto optimizado para WhatsApp
- Incluye metadata: rango de fechas y timestamp

Uso:
- Copiar Texto → Compartir en WhatsApp/Telegram
- Copiar JSON → Integración con otros sistemas
2025-10-30 16:33:54 -06:00

38 lines
853 B
Vue

<template>
<UApp>
<div class="brand-shell text-[#fef9f0]">
<NuxtRouteAnnouncer />
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</div>
</UApp>
</template>
<script setup lang="ts">
// Inicializar sistema de temas
const { loadTheme, initStorageListener, cleanupStorageListener } = useTheme()
// Signal that the app is ready
onMounted(() => {
// Cargar tema guardado (o aplicar el por defecto)
loadTheme()
// Inicializar sincronización de tema entre pestañas
initStorageListener()
// Add class to HTML element to hide loading screen
if (process.client) {
// Small delay to ensure everything is painted
setTimeout(() => {
document.documentElement.classList.add('nuxt-ready')
}, 100)
}
})
// Limpiar listeners al desmontar
onBeforeUnmount(() => {
cleanupStorageListener()
})
</script>