"use client" import { useState } from "react" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { Database, RefreshCw, CheckCircle2, AlertTriangle, Search, FileText, Upload, Download, Filter, TrendingUp, Zap, Tag, } from "lucide-react" import { Progress } from "@/components/ui/progress" export default function DataMiddlePlatform() { const [searchQuery, setSearchQuery] = useState("") const dataSources = [ { id: 1, name: "私域系统数据源", type: "微信生态", status: "active", lastSync: "2分钟前", users: 2850000000, syncRate: 98.5, dataSize: "850TB", }, { id: 2, name: "电商平台数据", type: "淘宝/京东", status: "active", lastSync: "5分钟前", users: 680000000, syncRate: 95.2, dataSize: "210TB", }, { id: 3, name: "表单收集数据", type: "第三方表单", status: "active", lastSync: "10分钟前", users: 425000000, syncRate: 92.8, dataSize: "125TB", }, { id: 4, name: "碰撞补全数据", type: "数据碰撞", status: "syncing", lastSync: "正在同步", users: 280000000, syncRate: 76.3, dataSize: "95TB", }, { id: 5, name: "项目API数据源", type: "外部API", status: "active", lastSync: "1分钟前", users: 50670000, syncRate: 99.1, dataSize: "18TB", }, ] const cleaningTasks = [ { name: "手机号格式校验", total: 4285670000, processed: 4200000000, progress: 98.0, errors: 1250000 }, { name: "重复数据去除", total: 4285670000, processed: 3850000000, progress: 89.8, errors: 85000000 }, { name: "缺失字段补全", total: 4285670000, processed: 3250000000, progress: 75.8, errors: 125000000 }, { name: "异常值检测", total: 4285670000, processed: 4100000000, progress: 95.7, errors: 8500000 }, ] const tagStats = { totalTags: 1258, systemTags: 485, customTags: 773, activeRules: 2850, todayTagged: 2845000 } const qualityChecks = [ { type: "重复数据", count: 85420000, percentage: 2.0, severity: "warning" }, { type: "异常数据", count: 12850000, percentage: 0.3, severity: "error" }, { type: "缺失字段", count: 325680000, percentage: 7.6, severity: "warning" }, { type: "格式错误", count: 5280000, percentage: 0.12, severity: "error" }, ] 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 (
全平台数据源管理、清洗与质量监控
{source.type}