"use client" import { useState, useEffect } from "react" import { Search, Users, TrendingUp, Database, RefreshCw, BarChart3, Activity, Globe } from 'lucide-react' import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Badge } from "@/components/ui/badge" import { useRouter } from "next/navigation" import { Toaster } from "@/components/ui/toaster" import UserSearch from '@/components/home/user-search' import UserList from '@/components/home/user-list' interface SystemStats { userCount: number keywordCount: number versionCount: number avgResponseTime: number cacheSize: number connected: boolean } interface GrowthData { period: string userGrowth: number dataGrowth: number activeUsers: number } function StatCard({ icon, label, value }: { icon: React.ReactNode; label: string; value: string }) { return (
{icon}{label}
{value}
) } export default function OverviewPage() { const router = useRouter() const [searchQuery, setSearchQuery] = useState("") const [systemStats, setSystemStats] = useState({ userCount: 4000000000, keywordCount: 150000, versionCount: 25, avgResponseTime: 120, cacheSize: 0, connected: true, }) const [growthData, setGrowthData] = useState([ { period: "今日", userGrowth: 2.3, dataGrowth: 1.8, activeUsers: 85600000 }, { period: "本周", userGrowth: 12.5, dataGrowth: 8.9, activeUsers: 520000000 }, { period: "本月", userGrowth: 45.2, dataGrowth: 32.1, activeUsers: 1200000000 }, ]) const [isRefreshing, setIsRefreshing] = useState(false) const [lastUpdate, setLastUpdate] = useState(new Date()) // 自动刷新数据 useEffect(() => { const interval = setInterval(() => { refreshData() }, 30000) // 30秒刷新一次 return () => clearInterval(interval) }, []) // 刷新数据 const refreshData = async () => { setIsRefreshing(true) try { // 模拟数据更新 setSystemStats((prev) => ({ ...prev, userCount: prev.userCount + Math.floor(Math.random() * 1000), avgResponseTime: Math.floor(Math.random() * 50) + 100, })) setGrowthData((prev) => prev.map((item) => ({ ...item, userGrowth: item.userGrowth + (Math.random() - 0.5) * 0.5, dataGrowth: item.dataGrowth + (Math.random() - 0.5) * 0.3, activeUsers: Math.floor(item.activeUsers * (1 + (Math.random() - 0.5) * 0.01)), })), ) setLastUpdate(new Date()) } catch (error) { console.error("刷新数据失败:", error) } finally { setIsRefreshing(false) } } // 处理搜索 const handleSearch = () => { if (searchQuery.trim()) { router.push(`/intelligent-search?q=${encodeURIComponent(searchQuery)}`) } } // 格式化数字显示 const formatNumber = (num: number): string => { if (num >= 1000000000) { return `${(num / 1000000000).toFixed(1)}B` } if (num >= 1000000) { return `${(num / 1000000).toFixed(1)}M` } if (num >= 1000) { return `${(num / 1000).toFixed(1)}K` } return num.toString() } return (
{/* 页面标题和搜索 */}

概览

数据资产中台

系统正常
{/* 搜索框 */}
setSearchQuery(e.target.value)} onKeyPress={(e) => e.key === "Enter" && handleSearch()} className="pl-12 pr-24 h-14 text-lg border-2 border-gray-200 focus:border-blue-500 rounded-xl shadow-sm" />
{/* 核心数据展示 - 40亿用户为中心 */}
{/* 用户总数 - 主要指标 */}
用户资产总量
{formatNumber(systemStats.userCount)}
总用户数
{growthData.map((data, index) => (
+{data.userGrowth.toFixed(1)}%
{data.period}增长
活跃: {formatNumber(data.activeUsers)}
))}
{/* 系统状态 */}
实时状态
响应时间 {systemStats.avgResponseTime}ms
数据源 {systemStats.versionCount}个
缓存大小 {systemStats.cacheSize}MB
最后更新: {lastUpdate.toLocaleTimeString()}
{/* 数据增长趋势 */}
用户资产增长
{growthData.map((data, index) => (
{data.period}
活跃用户: {formatNumber(data.activeUsers)}
+{data.userGrowth.toFixed(1)}%
增长率
))}
数据增长情况
流量关键词
总计 {formatNumber(systemStats.keywordCount)} 个
+{growthData[0].dataGrowth.toFixed(1)}%
今日增长
数据处理量
实时处理中
{formatNumber(Math.floor(systemStats.userCount * 0.001))}
条/秒
存储容量
云端存储
{Math.floor(systemStats.userCount / 1000000)}TB
已使用
{/* 快速访问入口 */}
router.push("/data-platform")} >

数据中台

数据源管理与AI模型

router.push("/user-portrait")} >

用户画像

用户管理与标签体系

router.push("/ai-assistant")} >

AI智能助手

数据分析与报告生成

router.push("/intelligent-search")} >

智能搜索

全局搜索与AI分析

{/* 快速指标示例(可后续接入真实数据) */}
} label="用户总量" value="~120+" /> } label="近7日活跃" value="动态计算" /> } label="平均RFM" value="50-80" /> } label="新客占比" value="≈25%" />
{/* 搜索 + 条件过滤 + 列表 */}
) }