dashboard page good

This commit is contained in:
2025-03-25 21:02:17 +08:00
parent efdfe8bf8e
commit ecf21a812f
5 changed files with 90 additions and 21 deletions

View File

@@ -7,6 +7,7 @@ import {
LinearScale,
PointElement,
LineElement,
LineController,
Title,
Tooltip,
Legend,
@@ -23,6 +24,7 @@ ChartJS.register(
LinearScale,
PointElement,
LineElement,
LineController,
Title,
Tooltip,
Legend,
@@ -50,13 +52,25 @@ export default function TimeSeriesChart({ data }: TimeSeriesChartProps) {
// 准备数据
const labels = data.map(item => {
if (!item || !item.timestamp) return '';
const date = new Date(item.timestamp);
return date.toLocaleDateString();
});
const eventsData = data.map(item => Number(item.events));
const visitorsData = data.map(item => Number(item.visitors));
const conversionsData = data.map(item => Number(item.conversions));
const eventsData = data.map(item => {
if (!item || item.events === undefined || item.events === null) return 0;
return Number(item.events);
});
const visitorsData = data.map(item => {
if (!item || item.visitors === undefined || item.visitors === null) return 0;
return Number(item.visitors);
});
const conversionsData = data.map(item => {
if (!item || item.conversions === undefined || item.conversions === null) return 0;
return Number(item.conversions);
});
// 创建新的图表实例
chartInstance.current = new ChartJS(ctx, {
@@ -144,6 +158,7 @@ export default function TimeSeriesChart({ data }: TimeSeriesChartProps) {
ticks: {
color: 'rgb(156, 163, 175)', // gray-400
callback: (value: number) => {
if (!value && value !== 0) return '';
if (value >= 1000) {
return `${(value / 1000).toFixed(1)}k`;
}