From 277de4651f06a6f6ac159c39929e78801f3eba9c Mon Sep 17 00:00:00 2001 From: seaislee1209 Date: Fri, 20 Mar 2026 16:47:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=AE=A1=E7=90=86=E5=90=8E=E5=8F=B0=20U?= =?UTF-8?q?I=20=E4=BC=98=E5=8C=96=20=E2=80=94=20=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E6=92=91=E6=BB=A1=E5=85=A8=E5=B1=8F=20+=20=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E5=AE=9E=E5=BF=83=E8=83=8C=E6=99=AF=20+=20=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=A1=B5/=E4=BB=AA=E8=A1=A8=E7=9B=98=E5=8F=8C=E5=88=97?= =?UTF-8?q?=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 所有表格页面移除 max-width: 1200px,撑满可用宽度 - 表格 td 加 white-space: nowrap 防止长文本折行 - AdminLayout 修改密码弹窗 background 改为实心 #16161e(修复半透明看不清) - 系统设置页改为双列 grid(配额+设备限制并排,公告+异常检测整行) - 仪表盘改为撑满 + 团队/用户排行双列并排 Co-Authored-By: Claude Opus 4.6 (1M context) --- web/src/pages/AdminAssetsPage.module.css | 2 +- web/src/pages/AdminLayout.tsx | 2 +- web/src/pages/AuditLogsPage.module.css | 2 +- web/src/pages/DashboardPage.module.css | 9 ++++++++- web/src/pages/DashboardPage.tsx | 24 +++++++++++++----------- web/src/pages/RecordsPage.module.css | 4 ++-- web/src/pages/SettingsPage.module.css | 9 +++++++-- web/src/pages/SettingsPage.tsx | 6 ++++-- web/src/pages/TeamsPage.module.css | 4 ++-- web/src/pages/UsersPage.module.css | 4 ++-- 10 files changed, 41 insertions(+), 25 deletions(-) diff --git a/web/src/pages/AdminAssetsPage.module.css b/web/src/pages/AdminAssetsPage.module.css index 3f36ab1..2fa7399 100644 --- a/web/src/pages/AdminAssetsPage.module.css +++ b/web/src/pages/AdminAssetsPage.module.css @@ -1,4 +1,4 @@ -.page { max-width: 1200px; } +.page { max-width: none; } .title { font-size: 22px; font-weight: 600; color: var(--color-text-primary); margin-bottom: 24px; } /* Stats bar */ diff --git a/web/src/pages/AdminLayout.tsx b/web/src/pages/AdminLayout.tsx index 8268eaa..1009157 100644 --- a/web/src/pages/AdminLayout.tsx +++ b/web/src/pages/AdminLayout.tsx @@ -115,7 +115,7 @@ export function AdminLayout() { {pwModalOpen && (
setPwModalOpen(false)}> -
e.stopPropagation()}>

修改密码

diff --git a/web/src/pages/AuditLogsPage.module.css b/web/src/pages/AuditLogsPage.module.css index 3327b23..1f915bb 100644 --- a/web/src/pages/AuditLogsPage.module.css +++ b/web/src/pages/AuditLogsPage.module.css @@ -1,4 +1,4 @@ -.page { max-width: 1200px; } +.page { max-width: none; } .title { font-size: 22px; font-weight: 600; color: var(--color-text-primary); margin-bottom: 20px; } .filters { display: flex; gap: 8px; align-items: center; margin-bottom: 16px; flex-wrap: wrap; } diff --git a/web/src/pages/DashboardPage.module.css b/web/src/pages/DashboardPage.module.css index d1cac23..7015709 100644 --- a/web/src/pages/DashboardPage.module.css +++ b/web/src/pages/DashboardPage.module.css @@ -1,5 +1,5 @@ .page { - max-width: 1200px; + max-width: none; } .title { @@ -108,8 +108,15 @@ 50% { opacity: 0.5; } } +.chartsRow { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; +} + @media (max-width: 1024px) { .statsGrid { grid-template-columns: repeat(2, 1fr); } + .chartsRow { grid-template-columns: 1fr; } } @media (max-width: 640px) { diff --git a/web/src/pages/DashboardPage.tsx b/web/src/pages/DashboardPage.tsx index cf4820c..815b0fa 100644 --- a/web/src/pages/DashboardPage.tsx +++ b/web/src/pages/DashboardPage.tsx @@ -200,19 +200,21 @@ export function DashboardPage() {
- {sortedTeams.length > 0 && ( -
-

团队消费排行(本月)

-
- +
+ {sortedTeams.length > 0 && ( +
+

团队消费排行(本月)

+
+ +
-
- )} + )} -
-

用户消费排行(Top 10 · 本月)

-
- +
+

用户消费排行(Top 10 · 本月)

+
+ +
diff --git a/web/src/pages/RecordsPage.module.css b/web/src/pages/RecordsPage.module.css index aa217a0..53abb3e 100644 --- a/web/src/pages/RecordsPage.module.css +++ b/web/src/pages/RecordsPage.module.css @@ -1,4 +1,4 @@ -.page { max-width: 1200px; } +.page { max-width: none; } .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .title { font-size: 22px; font-weight: 600; color: var(--color-text-primary); } .exportBtn { @@ -32,7 +32,7 @@ } .table { width: 100%; border-collapse: collapse; font-size: 13px; } .table th { padding: 12px 16px; text-align: left; color: var(--color-text-secondary); font-weight: 500; border-bottom: 1px solid var(--color-border-card); white-space: nowrap; } -.table td { padding: 12px 16px; color: var(--color-text-primary); border-bottom: 1px solid rgba(42, 42, 56, 0.5); } +.table td { padding: 12px 16px; color: var(--color-text-primary); border-bottom: 1px solid rgba(42, 42, 56, 0.5); white-space: nowrap; } .table tr:last-child td { border-bottom: none; } .table tr:hover td { background: rgba(255, 255, 255, 0.02); } .timeCell { white-space: nowrap; font-size: 12px; color: var(--color-text-secondary); } diff --git a/web/src/pages/SettingsPage.module.css b/web/src/pages/SettingsPage.module.css index 028a6ea..1ac5010 100644 --- a/web/src/pages/SettingsPage.module.css +++ b/web/src/pages/SettingsPage.module.css @@ -1,9 +1,11 @@ -.page { max-width: 720px; } +.page { max-width: none; } +.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } +.gridFull { grid-column: 1 / -1; } .title { font-size: 22px; font-weight: 600; color: var(--color-text-primary); margin-bottom: 24px; } .card { background: var(--color-bg-card); border: 1px solid var(--color-border-card); - border-radius: var(--radius-card); padding: 24px; margin-bottom: 20px; + border-radius: var(--radius-card); padding: 24px; } .cardHeader { display: flex; justify-content: space-between; align-items: flex-start; } .cardTitle { font-size: 16px; font-weight: 600; color: var(--color-text-primary); margin-bottom: 4px; } @@ -47,6 +49,9 @@ } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } } +@media (max-width: 900px) { + .grid { grid-template-columns: 1fr; } +} @media (max-width: 640px) { .formRow { grid-template-columns: 1fr; } } diff --git a/web/src/pages/SettingsPage.tsx b/web/src/pages/SettingsPage.tsx index 6f29538..1dd485e 100644 --- a/web/src/pages/SettingsPage.tsx +++ b/web/src/pages/SettingsPage.tsx @@ -98,6 +98,7 @@ export function SettingsPage() {

系统设置

+

全局默认配额

新注册用户将自动获得以下配额

@@ -153,7 +154,7 @@ export function SettingsPage() {
-
+

系统公告

@@ -183,7 +184,7 @@ export function SettingsPage() {
-
+

异常检测与告警

@@ -341,6 +342,7 @@ export function SettingsPage() { {saving ? '保存中...' : '保存异常检测设置'}
+
); } diff --git a/web/src/pages/TeamsPage.module.css b/web/src/pages/TeamsPage.module.css index b080181..8c1e9a1 100644 --- a/web/src/pages/TeamsPage.module.css +++ b/web/src/pages/TeamsPage.module.css @@ -1,4 +1,4 @@ -.page { max-width: 1200px; } +.page { max-width: none; } .title { font-size: 22px; font-weight: 600; color: var(--color-text-primary); margin-bottom: 20px; } .filters { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; gap: 12px; flex-wrap: wrap; } @@ -22,7 +22,7 @@ } .table { width: 100%; border-collapse: collapse; font-size: 13px; } .table th { padding: 12px 16px; text-align: left; color: var(--color-text-secondary); font-weight: 500; border-bottom: 1px solid var(--color-border-card); white-space: nowrap; } -.table td { padding: 12px 16px; color: var(--color-text-primary); border-bottom: 1px solid rgba(42, 42, 56, 0.5); } +.table td { padding: 12px 16px; color: var(--color-text-primary); border-bottom: 1px solid rgba(42, 42, 56, 0.5); white-space: nowrap; } .table tr:last-child td { border-bottom: none; } .table tr:hover td { background: rgba(255, 255, 255, 0.02); } diff --git a/web/src/pages/UsersPage.module.css b/web/src/pages/UsersPage.module.css index b662a84..3892f5c 100644 --- a/web/src/pages/UsersPage.module.css +++ b/web/src/pages/UsersPage.module.css @@ -1,4 +1,4 @@ -.page { max-width: 1200px; } +.page { max-width: none; } .title { font-size: 22px; font-weight: 600; color: var(--color-text-primary); margin-bottom: 20px; } .filters { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; gap: 12px; flex-wrap: wrap; } @@ -28,7 +28,7 @@ } .table { width: 100%; border-collapse: collapse; font-size: 13px; } .table th { padding: 12px 16px; text-align: left; color: var(--color-text-secondary); font-weight: 500; border-bottom: 1px solid var(--color-border-card); white-space: nowrap; } -.table td { padding: 12px 16px; color: var(--color-text-primary); border-bottom: 1px solid rgba(42, 42, 56, 0.5); } +.table td { padding: 12px 16px; color: var(--color-text-primary); border-bottom: 1px solid rgba(42, 42, 56, 0.5); white-space: nowrap; } .table tr:last-child td { border-bottom: none; } .table tr:hover td { background: rgba(255, 255, 255, 0.02); }