import { useState, useEffect } from "react"; import { useNavigate } from "react-router"; import { ArrowLeft, Lock, Unlock, ShieldCheck, Link2, CheckCircle2, Loader2, Play, Clock, } from "lucide-react"; import { Button } from "../components/ui/button"; import { Card } from "../components/ui/card"; import { PageHeader } from "../components/shared/common"; import { bidders } from "../data/mock"; interface LogItem { time: string; title: string; desc: string; icon: any; color: string; } const logSeq: LogItem[] = [ { time: "10:00:00", title: "开标启动", desc: "招标专员在开标时间到达后启动开标程序", icon: Play, color: "#1565c0" }, { time: "10:00:03", title: "投标截止确认", desc: "确认共收到 3 家有效投标文件", icon: CheckCircle2, color: "#0ea5e9" }, { time: "10:00:08", title: "文件自动解密", desc: "使用投标人 CA 证书自动解密投标文件", icon: Unlock, color: "#14b8a6" }, { time: "10:00:15", title: "投标文件哈希上链", desc: "各投标文件哈希值已写入区块链存证,不可篡改", icon: Link2, color: "#8b5cf6" }, { time: "10:00:20", title: "开标完成", desc: "所有投标文件解密成功,开标结束", icon: ShieldCheck, color: "#16a34a" }, ]; export function BidOpeningHall() { const navigate = useNavigate(); const [started, setStarted] = useState(false); const [shown, setShown] = useState(0); useEffect(() => { if (!started) return; if (shown >= logSeq.length) return; const t = setTimeout(() => setShown((s) => s + 1), 900); return () => clearTimeout(t); }, [started, shown]); const done = shown >= logSeq.length; return (
点击右上角「启动开标」开始
{l.desc}