From 09db33d5fadbd4dfd1e830195f57746faefdc9b0 Mon Sep 17 00:00:00 2001 From: imengying Date: Fri, 28 Aug 2026 00:54:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96agent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/App.tsx | 4 +- frontend/src/components/AdminPanel.tsx | 73 ++++++++++--------- frontend/src/components/AlertRuleManager.tsx | 6 +- frontend/src/components/LatencyManager.tsx | 4 +- frontend/src/components/NodeCard.tsx | 20 ++++-- frontend/src/components/NodeDetails.tsx | 16 +++-- frontend/src/components/ProgressBar.tsx | 5 +- frontend/src/styles/admin.css | 74 +++++++++++--------- migrations/initial_01.sql | 3 - scripts/websocket-smoke.mjs | 33 ++++++++- src/db.rs | 16 ++--- src/live.rs | 55 ++++++++++++++- 12 files changed, 206 insertions(+), 103 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index bd9eb19..444451e 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -107,7 +107,9 @@ function HomeView() { {config.show_search || config.show_groups ?
{config.show_search ?
setQuery(event.target.value)} />
: null} - {config.show_groups ?
{groups.map((item) => )}
: null} + {/* role="group" 让 aria-label 生效(无 role 的 div 是 generic,规范禁止命名,标签会被丢掉); + 选中态用 aria-pressed,不用 role="radio",避免欠下方向键 + roving tabindex 的实现。 */} + {config.show_groups ?
{groups.map((item) => )}
: null} {ui(locale, `${visible.length} 个节点`, `${visible.length} servers`)}
: null} {error ?
{error}
: null} diff --git a/frontend/src/components/AdminPanel.tsx b/frontend/src/components/AdminPanel.tsx index 946e4cd..d452b31 100644 --- a/frontend/src/components/AdminPanel.tsx +++ b/frontend/src/components/AdminPanel.tsx @@ -518,18 +518,20 @@ export function AdminPanel({ return (
- {error ?
- : notice ?
: null} + {/* toast 的定位是按后台的顶栏算的;登录页没有顶栏,那里的错误走表单内提示 */} + {authenticated ? (error ?
+ : notice ?
: null) : null} {!authenticated ?
- - + +
-

管理员登录

- - +

管理员登录

{config.site_name}

+ + {config.turnstile_login_enabled || config.turnstile_enabled ?
: null} - + {error ? : null} +
:
@@ -538,33 +540,38 @@ export function AdminPanel({ {config.site_name}
- - - + + +

{adminPages[tab].title}

{adminPages[tab].description}

{tab === "servers" ? (
-

监控节点

{servers.length} 个节点 · 可拖动上下排序
-
{selectedIds.length ? : 批量操作}
+

监控节点

{servers.length} 个节点 · 可拖动上下排序
+
{selectedIds.length ? : 批量操作}
{servers.map((server, index) => (
{ event.preventDefault(); event.dataTransfer.dropEffect = "move"; }} onDrop={(event) => void dropServer(event, server.id)}> @@ -592,8 +599,8 @@ export function AdminPanel({ {!theme.builtin ? {theme.url} : null}
- {!theme.builtin ? : null} - + {!theme.builtin ? : null} + {!theme.builtin ? : null}
)} @@ -604,7 +611,7 @@ export function AdminPanel({

仅支持 GitHub 地址