'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 (
初始化状态 查看系统是否已完成初始化 {isLoading ? ( ) : (
{status?.initialized ? ( <>

系统已初始化

初始化时间: {formatDateTime(status.initializedAt)}

操作人: {status.initializedBy}

) : ( <>

系统未初始化

请点击下方按钮进行系统初始化

)}
{!status?.initialized && ( )}
)}
{status?.initialized && ( 系统账户余额

分配池

{status.distributionPoolBalance}

黑洞

{status.blackHoleBalance}

流通池

{status.circulationPoolBalance}

)} 初始化说明

系统初始化将执行以下操作:

  1. 创建分配池账户,初始余额为 2 亿积分股
  2. 创建黑洞账户,初始余额为 0
  3. 创建流通池账户,初始余额为 0
  4. 创建系统运营账户 (12% 分配比例)
  5. 创建系统省级账户 (1% 分配比例)
  6. 创建系统市级账户 (2% 分配比例)
  7. 初始化系统配置参数

注意: 初始化操作只能执行一次,请谨慎操作。

确认初始化 系统初始化操作只能执行一次,确定要开始初始化吗?
); }