From a37cf93c673f8d641ac59d966c0a7a33b6761682 Mon Sep 17 00:00:00 2001 From: "liweiliang0905@gmail.com" Date: Fri, 23 Jan 2026 17:57:56 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E9=A6=96=E9=A1=B5=20Dashboard=20?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加响应式网格布局 - 卡片和图表移动端优化 - 添加底部 Tab 导航 - 管理入口根据用户权限显示 Co-Authored-By: Claude Opus 4.5 --- src/vitals/web/app.py | 126 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 125 insertions(+), 1 deletion(-) diff --git a/src/vitals/web/app.py b/src/vitals/web/app.py index bd4bfff..7e136c5 100644 --- a/src/vitals/web/app.py +++ b/src/vitals/web/app.py @@ -3455,10 +3455,54 @@ def get_dashboard_html() -> str: .nav a.active { color: #667eea; } + /* 移动端适配 */ @media (max-width: 768px) { .nav { + display: none !important; + } + body { + padding-bottom: 80px; + } + .container { + padding: 12px; + } + header { + padding: 20px 16px; + margin-bottom: 16px; + } + header h1 { + font-size: 1.5rem; + } + .grid { + grid-template-columns: 1fr 1fr; + gap: 12px; + } + .card { + padding: 14px; + } + .card .value { + font-size: 1.5rem; + } + .chart-container { + padding: 14px; + height: auto; + } + .chart-container canvas { + max-height: 180px; + } + .meals-list li { flex-wrap: wrap; - gap: 10px; + gap: 4px; + } + .meal-desc { + width: 100%; + margin: 4px 0; + order: 3; + } + } + @media (max-width: 480px) { + .grid { + grid-template-columns: 1fr; } } .container { @@ -3806,6 +3850,86 @@ def get_dashboard_html() -> str: loadTodayData(); loadWeekData(); loadWeightData(); + + // 检查管理员状态并显示管理入口 + const user = JSON.parse(localStorage.getItem('user') || '{}'); + if (user.is_admin) { + const adminLink = document.getElementById('admin-link'); + if (adminLink) adminLink.style.display = 'block'; + } + + + + + + +