import { useState } from 'react' import { useQuery } from '@tanstack/react-query' import { PageLoading, ErrorState } from '@/components/ui/feedback' import { PageHeader } from '@/components/common/PageHeader' import { Badge } from '@/components/ui/badge' import { Card, CardHeader } from '@/components/ui/card' import { StatCard } from '@/components/common/StatCard' import { LiveDataBadge } from '@/components/common/LiveDataBadge' import { CountryFlag } from '@/components/common/CountryFlag' import { ChartCard, TrendChart, DonutChart, FunnelChart, RankBars, SimpleBarChart } from '@/components/charts' import { getAnalytics } from '@/services/api/org' import { Activity, BadgePercent, Users, Zap, Target } from 'lucide-react' const PERIOD_OPTIONS = [ { value: 'today', label: '今日' }, { value: '7d', label: '近 7 天' }, { value: '30d', label: '近 30 天' }, { value: 'quarter', label: '本季度' }, ] as const export function AnalyticsPage() { const [period, setPeriod] = useState<(typeof PERIOD_OPTIONS)[number]['value']>('30d') const { data, isLoading, isError, refetch } = useQuery({ queryKey: ['analytics', period], queryFn: () => getAnalytics({ period }), }) if (isLoading) return if (isError || !data) return refetch()} /> const k = data.kpis return (
{PERIOD_OPTIONS.map((option) => ( ))}
} />

增长与转化

观察客户增长速度、渠道贡献和阶段流失

产品与团队效率

比较产品热度、响应速度和团队转化结果

({ name: p.product, value: p.inquiries }))} /> ({ name: r.name, value: r.avgResponseMin }))} unit="分钟" max={30} /> ({ name: r.name, value: r.rate }))} unit="%" />

经营提醒

需要优先处理的客户、跟进和市场变化

{data.bossBoard.urgentHighValue.map((c) => (
{c.name} {c.reason}
))}
{data.bossBoard.overdueMembers.map((m) => (
{m.name}{m.overdueCount} 项逾期
))}
{data.bossBoard.fastestCountries.map((c) => (
+{(c.growth * 100).toFixed(0)}%
))}

{data.bossBoard.bestChannel.name}

当前转化率 {data.bossBoard.bestChannel.conversion}%

{data.bossBoard.topProducts.map((p) => (
{p.product}{p.inquiries} 次
))}
{data.bossBoard.churningHighIntent.map((c) => (
{c.name} {c.daysSilent} 天未联系 · 意向 {c.intentScore} 分
))}
) }