"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
多源数据整合与管理中心
{source.description}