feat: 完善前端页面 - 新增数据分析、素材库、创作任务、平台配置页面

- 新增 metrics.html: 数据分析页面 (Dashboard, 趋势图, 平台对比, 选题推荐)
- 新增 assets.html: 素材库页面 (上传/管理/预览/标签)
- 新增 tasks.html: 创作任务页面 (任务列表/进度/详情)
- 新增 platforms.html: 平台配置页面 (知乎/微信/小红书格式规则)
- 更新导航组件: 添加新页面入口, 适配 H5 底部导航
- 修复 calendar.html: 使用本地 Vue/ElementPlus 资源
- 修复 assets.py: db.func.count -> sqlalchemy.func.count
- 新增 test_api_unit.py: 后端 API 单元测试
- 新增 test_frontend.sh: 前端页面完整性测试

PC/H5 双端适配, 所有页面统一使用 navbar + navigation 组件
This commit is contained in:
lt
2026-05-08 23:35:26 +08:00
parent cf5103bbca
commit 526278589b
9 changed files with 1430 additions and 4 deletions
+8 -3
View File
@@ -35,6 +35,11 @@
<nav class="sidebar-nav">
<button class="sidebar-btn ${currentPage==='dashboard'?'active':''}" data-page="/">📊 系统概览</button>
<button class="sidebar-btn ${currentPage==='topics'?'active':''}" data-page="topics.html">📋 选题管理</button>
<button class="sidebar-btn ${currentPage==='metrics'?'active':''}" data-page="metrics.html">📊 数据分析</button>
<button class="sidebar-btn ${currentPage==='calendar'?'active':''}" data-page="calendar.html">📅 内容日历</button>
<button class="sidebar-btn ${currentPage==='assets'?'active':''}" data-page="assets.html">🖼️ 素材库</button>
<button class="sidebar-btn ${currentPage==='tasks'?'active':''}" data-page="tasks.html">🚀 创作任务</button>
<button class="sidebar-btn ${currentPage==='platforms'?'active':''}" data-page="platforms.html">🌐 平台配置</button>
<button class="sidebar-btn ${currentPage==='logs'?'active':''}" data-page="logs.html">📄 系统日志</button>
${isAdmin ? `<button class="sidebar-btn ${currentPage==='users'?'active':''}" data-page="users.html">👥 用户管理</button>` : ''}
${isAdmin ? `<button class="sidebar-btn ${currentPage==='admin'?'active':''}" data-page="admin.html">⚙️ 系统管理</button>` : ''}
@@ -47,9 +52,9 @@
mobileNav.innerHTML = `
<button class="mobile-nav-btn ${currentPage==='dashboard'?'active':''}" data-page="/">📊</button>
<button class="mobile-nav-btn ${currentPage==='topics'?'active':''}" data-page="topics.html">📋</button>
<button class="mobile-nav-btn ${currentPage==='logs'?'active':''}" data-page="logs.html">📄</button>
${isAdmin ? `<button class="mobile-nav-btn ${currentPage==='users'?'active':''}" data-page="users.html">👥</button>` : ''}
${isAdmin ? `<button class="mobile-nav-btn ${currentPage==='admin'?'active':''}" data-page="admin.html">⚙️</button>` : ''}
<button class="mobile-nav-btn ${currentPage==='metrics'?'active':''}" data-page="metrics.html">📊</button>
<button class="mobile-nav-btn ${currentPage==='assets'?'active':''}" data-page="assets.html">🖼️</button>
<button class="mobile-nav-btn ${currentPage==='tasks'?'active':''}" data-page="tasks.html">🚀</button>
`;
wrapper.appendChild(sidebar);