Tipo de página

Dashboard: indicadores y gráficos directo de la base de datos.

El panel de abajo corre en la app de ejemplo, publicada en la Prueba online, sobre las mismas 52 ventas del listado y del PDF. Los ingresos cuadran al centavo. Nadie escribió una consulta a mano.

Ingresos, ticket promedio y pendientes en una sola pantalla

Indicadores, gráficos y tablas se declaran, no se programan. Cada uno hace su propia consulta a la base de datos, ya sumando o contando lo que necesita.

Dashboard de ventas con 4 indicadores y gráficos de ingresos
52 ventas, con los ingresos, el ticket promedio y 16 pendientes, y los 4 gráficos.

Indicadores que consultan la base de datos solos

Indicas la tabla, el campo y la cuenta: conteo, suma, promedio, mínimo o máximo (count, sum, avg, min, max). La tarjeta (<mad-db-metric-card>) hace la consulta sola. Puedes elegir el formato de moneda, el color y un filtro solo para esa tarjeta:

resources/views/…blade.php
<mad-form-grid :cols="4"><mad-db-metric-card model="Venda" field="id" total="count"label="Ventas" icon="shopping-cart" format="integer" /><mad-db-metric-card model="Venda" field="valor_total" total="sum"label="Ingresos" icon="circle-dollar-sign" variant="success" format="money:$" /><mad-db-metric-card model="Venda" field="valor_total" total="avg"label="Ticket promedio" icon="trending-up" format="money:$" /><mad-db-metric-card model="Venda" field="id" total="count":filters="[['status', '=', 'pendente']]"label="Pendientes" icon="clock" variant="warning" format="integer" /></mad-form-grid>
Cuatro indicadores: ventas, ingresos, ticket promedio y pendientes
Las cuatro tarjetas que salen del código de arriba, sin ninguna consulta escrita a mano.

Siete tipos de gráfico, que se cambian con un atributo

El atributo type elige el dibujo. Dices por qué campo agrupar y qué cuenta hacer, y el gráfico sale listo, dibujado con ECharts. Ajustes como área, barras horizontales, apiladas o en porcentaje (area, horizontal, stacked, percentage) se combinan con cualquier tipo.

resources/views/…blade.php
{{-- los 7 valores aceptados en type= --}}<mad-db-chart type="bar"     model="Venda" group-by="vendedor"field="valor_total" total="sum" format="currency:$" /><mad-db-chart type="line"    model="Venda" group-by="data_venda"field="valor_total" total="sum" area format="currency:$" /><mad-db-chart type="pie"     model="Venda" group-by="forma_pagamento"total="count" legend format="numeric:0" /><mad-db-chart type="donut"   model="Venda" group-by="status"total="count" legend percentage format="numeric:0" /><mad-db-chart type="rose"    model="Venda" group-by="vendedor"total="count" legend format="numeric:0" /><mad-db-chart type="funnel"  model="Venda" group-by="status"total="count" legend format="numeric:0" /><mad-db-chart type="treemap" model="Venda" group-by="forma_pagamento"field="valor_total" total="sum" format="currency:$" />
Gráfico de barras por vendedor y gráfico de líneas con área por día
Barras y línea con área: los ingresos por vendedor y por día.
Gráfico circular por forma de pago y de dona por estado
Circular y dona: ventas contadas por forma de pago y por estado.
Gráfico de rosa por vendedor y embudo por estado
Rosa y embudo: el embudo pone las etapas en orden solo.
Treemap de ingresos y barras horizontales por forma de pago
Treemap y barras horizontales: los mismos ingresos vistos de dos maneras.

Un listado y una tabla cruzada en el mismo panel

El dashboard puede tener dos tipos de tabla. Una es el listado completo, embebido (<mad-grid>), con estado coloreado, moneda, fecha formateada, búsqueda y paginación. La otra es una tabla cruzada (<mad-pivot-table>): un campo en las filas, otro en las columnas y el valor calculado en el cruce, con subtotales y exportación.

resources/views/…blade.php
<mad-pivot-table model="Venda"title="Ingresos: vendedor x forma de pago" :height="360" subtotals><mad-pivot-row   field="vendedor"        label="Vendedor" /><mad-pivot-col   field="forma_pagamento" label="Pago" /><mad-pivot-value field="valor_total"     label="Ingresos"aggregation="sum" format="currency" currency="USD" /></mad-pivot-table>{{-- listado embebido: orden y filtro declarativos --}}<mad-grid model="Venda" order-by="data_venda desc":filters="[['status', '=', 'pago']]" per-page="8" searchable>...</mad-grid>
Tabla cruzada de vendedor por forma de pago con total general
Vendedor en las filas, forma de pago en las columnas y el Total general cerrando la tabla.
Listado de ventas dentro del dashboard, ordenado por la fecha más reciente
El listado embebido, con las ventas más recientes primero, estado coloreado, moneda, fecha, búsqueda y paginación.

Filtros por mes y año, en siete formatos

Los filtros funcionan como los del listado, con un extra solo del dashboard: el selector de período por mes y año. El bloque de filtros (<mad-dash-filters>) puede aparecer de siete maneras, y las cambias modificando solo el style: toolbar, chips, form, drawer, modal, sidebar-left o sidebar-right.

resources/views/…blade.php
<mad-dash-filters style="drawer" name="filtros" title="Filtros"><mad-period-monthyear />                        {{-- período mes/año --}}<mad-search-field    name="busca"         label="Búsqueda" /><mad-select-field    name="status"        label="Estado" :items="[...]" /><mad-dbcombo-field   name="cliente_id"    label="Cliente" model="Pessoa" display="{nome}" /><mad-daterange-field name="periodo_venda" label="Período de la venta" /><mad-number-field    name="valor_minimo"  label="Valor mínimo" :min="0" /><mad-switch-field    name="somente_pagas" label="Solo pagadas" /></mad-dash-filters>
Filtros del dashboard en barra
Barra: el período y los filtros en una sola franja, en el formato predeterminado.
Filtros del dashboard en etiquetas
Etiquetas: solo el período queda a la vista, y el resto entra por “+ Agregar filtro”.
Filtros del dashboard en un panel fijo de dos columnas
Formulario: un panel fijo de dos columnas, con Aplicar y Limpiar todo.
Filtros del dashboard en un panel lateral
Panel lateral: todos los campos juntos, con el botón Aplicar.
Filtros del dashboard en una ventana central
Ventana central: los campos en dos columnas, con el dashboard aún en pantalla.
Filtros del dashboard en columna fija a la izquierda de los indicadores y gráficos
Columna a la izquierda: 260px fijos, y los indicadores y gráficos se acomodan al lado.
Filtros del dashboard en columna fija a la derecha de los indicadores y gráficos
Columna a la derecha: la misma columna, del otro lado del dashboard.

Doce tipos de campo para filtrar

El bloque de filtros acepta doce tipos de campo. Cualquiera de ellos filtra todo el dashboard: indicadores, gráficos y tablas cambian juntos.

<mad-period-monthyear> Todos, mes, año o personalizado. Solo existe en el dashboard
<mad-search-field> Búsqueda libre por texto
<mad-input-field> Texto simple
<mad-select-field> Lista fija de opciones
<mad-dbselect-field> Lista que viene de una tabla
<mad-dbcombo-field> Lista con búsqueda, que viene de la base de datos
<mad-dbunique-search-field> Búsqueda de un registro en la base de datos
<mad-date-field> Una fecha
<mad-daterange-field> Rango de fechas
<mad-number-field> Número, como un valor mínimo
<mad-switch-field> Interruptor de encendido y apagado
<mad-checkbox-field> Casilla de verificación, sí o no

La imagen del panel lateral, más arriba, muestra siete de ellos juntos: período, búsqueda, lista de opciones, lista de la base de datos, rango de fechas, número e interruptor.

Y más

Indicador con valor calculado por ti, en PHPLeyendas con nombres en lugar de códigosBarras horizontales, apiladas, área, porcentaje y números abreviadosGráfico sin marco, para encajar en otro diseñoGráfico con datos que tú informas, sin tabla en la base de datosResultado guardado en caché para cada combinación de filtros

Mira el listado en detalle o conoce los tipos de página.

Crea la cuenta, arma una pantalla, descarga el proyecto.

Sin demo agendada ni llamada de descubrimiento. Si el Laravel que sale no pasa la revisión de tu equipo, perdiste una tarde.

  1. Crea la cuentaBeta abierta, sin tarjeta.
  2. Arma una pantallaEn el editor visual, en código o pidiéndoselo a la IA.
  3. Descarga el .zipUn proyecto Laravel que corre donde quieras.