From 6840728da67b4baa0c02acdc0af2328c1440f4b6 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Fri, 24 Jul 2026 12:48:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20antd=20=E5=BC=83=E7=94=A8?= =?UTF-8?q?=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/frontend/src/App.tsx | 62 +++++++------- web/frontend/src/layouts/MainLayout.tsx | 2 +- web/frontend/src/pages/AccountCheckPage.tsx | 51 ++++++----- web/frontend/src/pages/AccountsPage.tsx | 3 +- web/frontend/src/pages/AssignmentsPage.tsx | 3 +- web/frontend/src/pages/CookiePage.tsx | 3 +- web/frontend/src/pages/HuyaAccountsPage.tsx | 13 +-- .../src/pages/HuyaAssignmentsPage.tsx | 5 +- web/frontend/src/pages/HuyaCookiePage.tsx | 3 +- web/frontend/src/pages/HuyaRegisterPage.tsx | 7 +- web/frontend/src/pages/HuyaTasksPage.tsx | 85 ++++++++++--------- web/frontend/src/pages/LoginPage.tsx | 3 +- web/frontend/src/pages/LoginTasksPage.tsx | 63 ++++++++------ web/frontend/src/pages/ProxyPage.tsx | 3 +- web/frontend/src/pages/UsersPage.tsx | 3 +- web/frontend/src/utils/AntdMessageBridge.tsx | 16 ++++ web/frontend/src/utils/antdMessage.ts | 38 +++++++++ 17 files changed, 225 insertions(+), 138 deletions(-) create mode 100644 web/frontend/src/utils/AntdMessageBridge.tsx create mode 100644 web/frontend/src/utils/antdMessage.ts diff --git a/web/frontend/src/App.tsx b/web/frontend/src/App.tsx index 143c0a2..0ce93fa 100644 --- a/web/frontend/src/App.tsx +++ b/web/frontend/src/App.tsx @@ -1,10 +1,11 @@ import { lazy, Suspense, useState, useCallback, type ReactNode } from 'react'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; -import { ConfigProvider, Spin, theme } from 'antd'; +import { App as AntdApp, ConfigProvider, Spin, theme } from 'antd'; import zhCN from 'antd/locale/zh_CN'; import { getUser } from './store/auth'; import { ThemeProvider } from './store/theme'; import { useTheme } from './store/useTheme'; +import AntdMessageBridge from './utils/AntdMessageBridge'; const LoginPage = lazy(() => import('./pages/LoginPage')); const MainLayout = lazy(() => import('./layouts/MainLayout')); @@ -51,34 +52,37 @@ function AppContent() { }, }} > - - - )} /> - ) - : - } - > - )} /> - )} /> - )} /> - )} /> - )} /> - )} /> - )} /> - )} /> - )} /> - )} /> - )} /> - )} /> - )} /> - - } /> - - + + + + + )} /> + ) + : + } + > + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + + } /> + + + ); } diff --git a/web/frontend/src/layouts/MainLayout.tsx b/web/frontend/src/layouts/MainLayout.tsx index cb5e9d4..9572f36 100644 --- a/web/frontend/src/layouts/MainLayout.tsx +++ b/web/frontend/src/layouts/MainLayout.tsx @@ -193,7 +193,7 @@ export default function MainLayout({ onLogout }: { onLogout?: () => void }) { )} {collapsed ? ( <> - + ({ key: o.key, label: o.label, icon: o.icon, onClick: () => setMode(o.key) })) }} trigger={['click']} diff --git a/web/frontend/src/pages/AccountCheckPage.tsx b/web/frontend/src/pages/AccountCheckPage.tsx index 918f27e..9b0ce5c 100644 --- a/web/frontend/src/pages/AccountCheckPage.tsx +++ b/web/frontend/src/pages/AccountCheckPage.tsx @@ -1,7 +1,8 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { - Button, Card, Col, Input, InputNumber, message, Popconfirm, Row, Space, Statistic, Switch, Table, Tag, Typography, + Button, Card, Col, Input, InputNumber, Popconfirm, Row, Space, Statistic, Switch, Table, Tag, Typography, } from 'antd'; +import { message } from '../utils/antdMessage'; import type { TableProps } from 'antd'; import { DownloadOutlined, PlayCircleOutlined, ReloadOutlined, StopOutlined } from '@ant-design/icons'; import { accountCheckApi, type AccountCheckBatch, type AccountCheckItem } from '../api/modules'; @@ -163,7 +164,7 @@ export default function AccountCheckPage() { return () => window.clearInterval(timer); }, [batchId, isRunning, refreshBatch]); - const statusCounts = batch?.status_counts || {}; + const statusCounts = useMemo(() => batch?.status_counts || {}, [batch?.status_counts]); const categoryStats = useMemo(() => [ { title: '已注销', value: statusCounts.account_cancelled || 0 }, { title: '密码错误', value: statusCounts.password_wrong || 0 }, @@ -247,11 +248,11 @@ export default function AccountCheckPage() { ]; return ( - + 账号检测 - +