'use client'; import { useState } from 'react'; import { PageHeader } from '@/components/layout/page-header'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { apiClient } from '@/lib/api/client'; import { formatDateTime } from '@/lib/utils/date'; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from '@/components/ui/dialog'; import { Skeleton } from '@/components/ui/skeleton'; import { useToast } from '@/lib/hooks/use-toast'; import { Play, CheckCircle, AlertCircle, Loader2 } from 'lucide-react'; interface InitializationStatus { initialized: boolean; initializedAt: string | null; initializedBy: string | null; distributionPoolBalance: string; blackHoleBalance: string; circulationPoolBalance: string; } export default function InitializationPage() { const queryClient = useQueryClient(); const { toast } = useToast(); const [showConfirm, setShowConfirm] = useState(false); const { data: status, isLoading } = useQuery({ queryKey: ['initialization', 'status'], queryFn: async () => { const response = await apiClient.get('/initialization/status'); return response.data.data as InitializationStatus; }, }); const initializeMutation = useMutation({ mutationFn: async () => { const response = await apiClient.post('/initialization/initialize'); return response.data; }, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['initialization', 'status'] }); toast({ title: '初始化成功', variant: 'success' as any }); setShowConfirm(false); }, onError: () => { toast({ title: '初始化失败', variant: 'destructive' }); }, }); const handleInitialize = () => { initializeMutation.mutate(); }; return (
系统已初始化
初始化时间: {formatDateTime(status.initializedAt)}
操作人: {status.initializedBy}
系统未初始化
请点击下方按钮进行系统初始化
分配池
{status.distributionPoolBalance}
黑洞
{status.blackHoleBalance}
流通池
{status.circulationPoolBalance}
系统初始化将执行以下操作:
注意: 初始化操作只能执行一次,请谨慎操作。