Explorar o código

feat: :sparkles: adicionar card com número de pessoas que acessaram o App Serprati

Refs: 868kf24hh
joykepler hai 1 semana
pai
achega
9876d8bea8

+ 1 - 0
src/i18n/locales/en.json

@@ -587,6 +587,7 @@
       "novos_mes": "New (month)",
       "associados_pendentes": "Pending Members",
       "ultimos_acessos": "Last Accesses",
+      "total_acessos_app": "Serprati App Accesses",
       "association_date": "Association Date",
       "registration_date": "Registration Date"
     },

+ 1 - 0
src/i18n/locales/es.json

@@ -588,6 +588,7 @@
       "novos_mes": "Nuevos (mes)",
       "associados_pendentes": "Asociados Pendientes",
       "ultimos_acessos": "Últimos Accesos",
+      "total_acessos_app": "Accesos al App Serprati",
       "association_date": "Fecha de Asociación",
       "registration_date": "Fecha de Registro"
     },

+ 1 - 0
src/i18n/locales/pt.json

@@ -588,6 +588,7 @@
       "novos_mes": "Novos (mês)",
       "associados_pendentes": "Associados Pendentes",
       "ultimos_acessos": "Últimos Acessos",
+      "total_acessos_app": "Acessos ao App Serprati",
       "association_date": "Data Associação",
       "registration_date": "Data Cadastro"
     },

+ 5 - 2
src/pages/dashboard/DashboardPage.vue

@@ -40,7 +40,7 @@
             :api-call="activeApiCall"
             :add-item="false"
             sem-table-top
-            :show-search-field="activeCard !== 'ultimos_acessos'"
+            :show-search-field="!['ultimos_acessos', 'total_acessos_app'].includes(activeCard)"
           >
             <template #body-cell-status="{ row }">
               <q-td>
@@ -100,6 +100,7 @@ const statCards = [
   { key: "novos_mes",            icon: "mdi-account-plus",   labelKey: "dashboard.stats.novos_mes" },
   { key: "associados_pendentes", icon: "mdi-account-alert",  labelKey: "dashboard.stats.associados_pendentes" },
   { key: "ultimos_acessos",      icon: "mdi-login-variant",  labelKey: "dashboard.stats.ultimos_acessos" },
+  { key: "total_acessos_app",    icon: "mdi-cellphone-check", labelKey: "dashboard.stats.total_acessos_app" },
 ];
 
 // Colunas por tipo de card
@@ -134,7 +135,7 @@ const tableColumns = computed(() => {
   if (!activeCard.value) return [];
   if (activeCard.value === "contratos_a_vencer") return columnsContratosAVencer.value;
   if (activeCard.value === "parceiros" || activeCard.value === "novos_mes") return columnsParceiros.value;
-  if (activeCard.value === "ultimos_acessos") return columnsAccessLogs.value;
+  if (activeCard.value === "ultimos_acessos" || activeCard.value === "total_acessos_app") return columnsAccessLogs.value;
   return columnsAssociados.value;
 });
 
@@ -155,6 +156,8 @@ const activeApiCall = computed(() => {
       return (p) => getPartnerAgreementsPaginated({ ...p, createdMonth: "current" });
     case "ultimos_acessos":
       return (p) => getAccessLogsPaginated({ ...p, last_per_user: true });
+    case "total_acessos_app":
+      return (p) => getAccessLogsPaginated({ ...p, type: "associado", last_per_user: true });
     default:
       return null;
   }