"use client" import { useState } from "react" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Badge } from "@/components/ui/badge" import { Progress } from "@/components/ui/progress" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Database, Upload, Download, RefreshCw, CheckCircle, AlertCircle, Clock, FileText, Settings, ChevronRight, ChevronDown, } from "lucide-react" import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible" export default function DataPlatformPage() { const [timeRange, setTimeRange] = useState("today") const [expandedSections, setExpandedSections] = useState({ overview: true, sources: true, integration: false, quality: false, }) // 数据中台数据 const platformData = { overview: { totalRecords: 1245678, dataSources: 8, syncStatus: "正常", lastUpdate: "2分钟前", dataQuality: 94.6, storageUsed: 2.3, storageTotal: 10.0, }, dataSources: [ { name: "用户行为数据库", type: "MySQL", status: "connected", records: 456789, lastSync: "1分钟前", quality: 96.8, description: "用户行为轨迹数据", }, { name: "CRM系统", type: "API", status: "connected", records: 125678, lastSync: "3分钟前", quality: 94.2, description: "客户关系管理数据", }, { name: "内容平台数据", type: "API", status: "syncing", records: 234567, lastSync: "正在同步", quality: 92.5, description: "抖音、小红书等平台数据", }, { name: "触客宝后台", type: "API", status: "connected", records: 89234, lastSync: "5分钟前", quality: 95.1, description: "呼入电话信息数据", }, { name: "飞书妙记", type: "API", status: "connected", records: 12345, lastSync: "10分钟前", quality: 91.3, description: "会议记录和内容摘要", }, { name: "表单提交数据", type: "Webhook", status: "connected", records: 67890, lastSync: "2分钟前", quality: 97.2, description: "在线表单提交数据", }, ], integrationStats: { totalIntegrations: 8, activeIntegrations: 7, failedIntegrations: 0, pendingIntegrations: 1, avgSyncTime: "2.3分钟", successRate: 98.7, }, dataQuality: { completeness: 94.6, accuracy: 96.2, consistency: 92.8, timeliness: 95.4, validity: 93.7, uniqueness: 97.1, }, } const toggleSection = (section: string) => { setExpandedSections((prev) => ({ ...prev, [section]: !prev[section], })) } const getStatusColor = (status: string) => { switch (status) { case "connected": return "bg-green-100 text-green-800" case "syncing": return "bg-yellow-100 text-yellow-800" case "error": return "bg-red-100 text-red-800" case "disconnected": return "bg-gray-100 text-gray-800" default: return "bg-gray-100 text-gray-800" } } const getStatusIcon = (status: string) => { switch (status) { case "connected": return case "syncing": return case "error": return default: return } } return (
{/* 页面标题和工具栏 */}

数据中台

多源数据整合与管理中心

{/* 数据中台概览 */} setExpandedSections((prev) => ({ ...prev, overview: open }))} >
平台概览 数据中台整体运行状况
{expandedSections.overview ? ( ) : ( )}
{platformData.overview.totalRecords.toLocaleString()}
总数据量
{platformData.overview.dataSources}
数据源
{platformData.overview.dataQuality}%
数据质量
{platformData.overview.storageUsed}GB
存储使用
存储使用率 {platformData.overview.storageUsed}GB / {platformData.overview.storageTotal}GB
数据质量 {platformData.overview.dataQuality}%
{/* 数据源管理 */} setExpandedSections((prev) => ({ ...prev, sources: open }))} >
数据源管理 数据源连接状态 ({platformData.dataSources.length})
{expandedSections.sources ? ( ) : ( )}
{platformData.dataSources.map((source, index) => (
{getStatusIcon(source.status)}

{source.name}

{source.status} {source.type}

{source.description}

数据量: {source.records.toLocaleString()} 最后同步: {source.lastSync} 质量评分: {source.quality}%
{source.quality}%
数据质量
))}
{/* 数据集成统计 */} setExpandedSections((prev) => ({ ...prev, integration: open }))} >
集成统计 数据集成性能指标
{expandedSections.integration ? ( ) : ( )}
集成概况
总集成数 {platformData.integrationStats.totalIntegrations}
活跃集成 {platformData.integrationStats.activeIntegrations}
待处理 {platformData.integrationStats.pendingIntegrations}
性能指标
成功率 {platformData.integrationStats.successRate}%
平均同步时间 {platformData.integrationStats.avgSyncTime}
失败集成 {platformData.integrationStats.failedIntegrations}
实时状态
最后更新 {platformData.overview.lastUpdate}
同步状态 {platformData.overview.syncStatus}
系统负载 正常
{/* 数据质量监控 */} setExpandedSections((prev) => ({ ...prev, quality: open }))} >
数据质量监控 数据质量多维度评估
{expandedSections.quality ? ( ) : ( )}
{Object.entries(platformData.dataQuality).map(([key, value], index) => { const labels = { completeness: "完整性", accuracy: "准确性", consistency: "一致性", timeliness: "及时性", validity: "有效性", uniqueness: "唯一性", } const colors = [ "bg-blue-50 text-blue-600", "bg-green-50 text-green-600", "bg-purple-50 text-purple-600", "bg-orange-50 text-orange-600", "bg-pink-50 text-pink-600", "bg-indigo-50 text-indigo-600", ] return (
{value}%
{labels[key as keyof typeof labels]}
) })}
) }