Files
bmad-method-template/prototype/docs-index.html
yourname 7388e79b09 refactor: 改进文档展示方式,去除模态框直接在页面中展开
- 移除模态框方案,改为直接在页面中展开文档
- 文档点击后直接在页面下方显示,无需弹窗
- 简化用户交互,提升使用体验
- 更新技能文件,明确前端渲染方案

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 03:34:34 +00:00

377 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文档中心 - AI 智能抽背助手原型系统</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
:root {
--primary-blue: #1890FF;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
}
.doc-card {
transition: all 0.3s ease;
}
.doc-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}
.stat-item {
background: linear-gradient(135deg, var(--primary-blue), #40a9ff);
}
.doc-content {
margin-top: 1rem;
padding: 2rem;
background: white;
border-radius: 0.5rem;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.doc-content.hidden {
display: none;
}
.markdown-body h1, .markdown-body h2 { border-bottom: 1px solid #e5e7eb; padding-bottom: 0.5em; margin-bottom: 1em; }
.markdown-body pre { background: #1f2937; color: #e5e7eb; padding: 1rem; border-radius: 0.5rem; overflow-x: auto; }
.markdown-body code { background: #f3f4f6; padding: 0.2em 0.4em; border-radius: 0.25rem; }
.markdown-body table { border-collapse: collapse; width: 100%; }
.markdown-body table th, .markdown-body table td { border: 1px solid #e5e7eb; padding: 0.5rem; }
.markdown-body table tr:nth-child(even) { background: #f9fafb; }
.markdown-body blockquote { border-left: 4px solid #3b82f6; padding-left: 1rem; color: #6b7280; }
.markdown-body a { color: #2563eb; }
</style>
<script src="https://cdn.jsdelivr.net/npm/markdown-it@14.0.0/dist/markdown-it.min.js"></script>
</head>
<body class="bg-gray-50 min-h-screen">
<!-- 导航栏 -->
<nav class="bg-white shadow-sm sticky top-0 z-50">
<div class="max-w-7xl mx-auto px-6 py-4">
<div class="flex items-center justify-between">
<div class="flex items-center gap-3">
<div class="w-10 h-10 bg-gradient-to-br from-blue-500 to-blue-600 rounded-xl flex items-center justify-center">
<i class="fas fa-book text-white"></i>
</div>
<span class="text-xl font-bold text-gray-800">文档中心</span>
</div>
<div class="flex items-center gap-4">
<a href="index.html" class="text-gray-600 hover:text-blue-600 text-sm">首页</a>
<a href="admin-index.html" class="text-gray-600 hover:text-blue-600 text-sm">平铺展示</a>
<span class="text-gray-300">|</span>
<span class="text-gray-500 text-sm">AI 智能抽背助手</span>
</div>
</div>
</div>
</nav>
<!-- 统计区域 -->
<section class="py-8 bg-white border-b">
<div class="max-w-7xl mx-auto px-6">
<div class="grid grid-cols-4 gap-4">
<div class="stat-item rounded-xl p-4 text-white">
<div class="flex items-center justify-between">
<div>
<p class="text-white/80 text-sm">文档数量</p>
<p class="text-2xl font-bold">3</p>
</div>
<i class="fas fa-file-alt text-3xl text-white/30"></i>
</div>
</div>
<div class="bg-gradient-to-br from-green-500 to-green-600 rounded-xl p-4 text-white">
<div class="flex items-center justify-between">
<div>
<p class="text-white/80 text-sm">页面数量</p>
<p class="text-2xl font-bold">6</p>
</div>
<i class="fas fa-file-code text-3xl text-white/30"></i>
</div>
</div>
<div class="bg-gradient-to-br from-purple-500 to-purple-600 rounded-xl p-4 text-white">
<div class="flex items-center justify-between">
<div>
<p class="text-white/80 text-sm">功能模块</p>
<p class="text-2xl font-bold">5</p>
</div>
<i class="fas fa-cubes text-3xl text-white/30"></i>
</div>
</div>
<div class="bg-gradient-to-br from-orange-500 to-orange-600 rounded-xl p-4 text-white">
<div class="flex items-center justify-between">
<div>
<p class="text-white/80 text-sm">更新日期</p>
<p class="text-2xl font-bold">03-28</p>
</div>
<i class="fas fa-calendar text-3xl text-white/30"></i>
</div>
</div>
</div>
</div>
</section>
<!-- 主内容区 -->
<section class="py-12">
<div class="max-w-7xl mx-auto px-6">
<div class="grid grid-cols-1 lg:grid-cols-3 gap-8">
<!-- 文档列表 -->
<div class="lg:col-span-2">
<h2 class="text-2xl font-bold text-gray-800 mb-6">项目文档</h2>
<!-- PRD 文档 -->
<div class="doc-card bg-white rounded-xl shadow-sm overflow-hidden mb-6">
<div class="flex">
<div class="w-2 bg-blue-500"></div>
<div class="p-6 flex-1">
<div class="flex items-start justify-between mb-4">
<div>
<div class="flex items-center gap-2 mb-2">
<h3 class="text-lg font-semibold text-gray-800">产品需求文档 (PRD)</h3>
<span class="px-2 py-0.5 bg-blue-100 text-blue-700 rounded text-xs">核心文档</span>
</div>
<p class="text-gray-600 text-sm mb-4">完整的产品需求规格说明,包含项目愿景、功能需求、非功能需求、技术架构等</p>
</div>
<div class="w-12 h-12 bg-blue-100 rounded-xl flex items-center justify-center">
<i class="fas fa-file-alt text-blue-600 text-xl"></i>
</div>
</div>
<div class="grid grid-cols-3 gap-4 mb-4 text-sm">
<div class="bg-gray-50 rounded-lg p-3">
<p class="text-gray-500 text-xs">行数</p>
<p class="font-semibold text-gray-800">1,082 行</p>
</div>
<div class="bg-gray-50 rounded-lg p-3">
<p class="text-gray-500 text-xs">大小</p>
<p class="font-semibold text-gray-800">40 KB</p>
</div>
<div class="bg-gray-50 rounded-lg p-3">
<p class="text-gray-500 text-xs">功能点</p>
<p class="font-semibold text-gray-800">75 个</p>
</div>
</div>
<div class="flex items-center justify-between">
<div class="flex flex-wrap gap-2">
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">产品愿景</span>
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">功能需求</span>
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">技术架构</span>
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">数据模型</span>
</div>
<a href="#" onclick="toggleDoc('prd.md'); return false;" class="px-4 py-2 bg-blue-600 text-white rounded-lg text-sm hover:bg-blue-700">
<i class="fas fa-eye mr-2"></i>查看文档
</a>
</div>
<div id="doc-prd.md" class="doc-content hidden"></div>
</div>
</div>
</div>
<!-- UX 设计规范 -->
<div class="doc-card bg-white rounded-xl shadow-sm overflow-hidden mb-6">
<div class="flex">
<div class="w-2 bg-purple-500"></div>
<div class="p-6 flex-1">
<div class="flex items-start justify-between mb-4">
<div>
<div class="flex items-center gap-2 mb-2">
<h3 class="text-lg font-semibold text-gray-800">UX 设计规范</h3>
<span class="px-2 py-0.5 bg-purple-100 text-purple-700 rounded text-xs">设计文档</span>
</div>
<p class="text-gray-600 text-sm mb-4">用户体验设计规范,包含设计系统、组件规范、页面设计、响应式与无障碍等</p>
</div>
<div class="w-12 h-12 bg-purple-100 rounded-xl flex items-center justify-center">
<i class="fas fa-palette text-purple-600 text-xl"></i>
</div>
</div>
<div class="grid grid-cols-3 gap-4 mb-4 text-sm">
<div class="bg-gray-50 rounded-lg p-3">
<p class="text-gray-500 text-xs">行数</p>
<p class="font-semibold text-gray-800">1,094 行</p>
</div>
<div class="bg-gray-50 rounded-lg p-3">
<p class="text-gray-500 text-xs">大小</p>
<p class="font-semibold text-gray-800">36 KB</p>
</div>
<div class="bg-gray-50 rounded-lg p-3">
<p class="text-gray-500 text-xs">界面数</p>
<p class="font-semibold text-gray-800">6 个</p>
</div>
</div>
<div class="flex items-center justify-between">
<div class="flex flex-wrap gap-2">
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">设计系统</span>
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">组件规范</span>
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">色彩系统</span>
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">无障碍</span>
</div>
<a href="#" onclick="toggleDoc('ux-design-specification.md'); return false;" class="px-4 py-2 bg-purple-600 text-white rounded-lg text-sm hover:bg-purple-700">
<i class="fas fa-eye mr-2"></i>查看文档
</a>
</div>
<div id="doc-ux-design-specification.md" class="doc-content hidden"></div>
</div>
</div>
</div>
<!-- 需求文档 -->
<div class="doc-card bg-white rounded-xl shadow-sm overflow-hidden">
<div class="flex">
<div class="w-2 bg-green-500"></div>
<div class="p-6 flex-1">
<div class="flex items-start justify-between mb-4">
<div>
<div class="flex items-center gap-2 mb-2">
<h3 class="text-lg font-semibold text-gray-800">需求文档</h3>
<span class="px-2 py-0.5 bg-green-100 text-green-700 rounded text-xs">原始需求</span>
</div>
<p class="text-gray-600 text-sm mb-4">原始需求文档包含用户管理、收藏分享、任务制定、AI语音抽背、要点背诵等模块详细需求</p>
</div>
<div class="w-12 h-12 bg-green-100 rounded-xl flex items-center justify-center">
<i class="fas fa-list text-green-600 text-xl"></i>
</div>
</div>
<div class="grid grid-cols-3 gap-4 mb-4 text-sm">
<div class="bg-gray-50 rounded-lg p-3">
<p class="text-gray-500 text-xs">行数</p>
<p class="font-semibold text-gray-800">1,092 行</p>
</div>
<div class="bg-gray-50 rounded-lg p-3">
<p class="text-gray-500 text-xs">大小</p>
<p class="font-semibold text-gray-800">50 KB</p>
</div>
<div class="bg-gray-50 rounded-lg p-3">
<p class="text-gray-500 text-xs">模块数</p>
<p class="font-semibold text-gray-800">5 个</p>
</div>
</div>
<div class="flex items-center justify-between">
<div class="flex flex-wrap gap-2">
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">用户管理</span>
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">收藏分享</span>
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">任务制定</span>
<span class="px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">AI抽背</span>
</div>
<a href="#" onclick="toggleDoc('ai-tutor-requirements.md'); return false;" class="px-4 py-2 bg-green-600 text-white rounded-lg text-sm hover:bg-green-700">
<i class="fas fa-eye mr-2"></i>查看文档
</a>
</div>
<div id="doc-ai-tutor-requirements.md" class="doc-content hidden"></div>
</div>
</div>
</div>
</div>
<!-- 侧边栏 -->
<div>
<h2 class="text-lg font-bold text-gray-800 mb-4">快速导航</h2>
<div class="bg-white rounded-xl shadow-sm p-4 mb-6">
<ul class="space-y-2">
<li>
<a href="index.html" class="flex items-center gap-3 p-3 rounded-lg hover:bg-gray-50 transition">
<i class="fas fa-home text-gray-400 w-5"></i>
<span class="text-gray-700">统一入口</span>
</a>
</li>
<li>
<a href="admin-index.html" class="flex items-center gap-3 p-3 rounded-lg hover:bg-gray-50 transition">
<i class="fas fa-th text-gray-400 w-5"></i>
<span class="text-gray-700">平铺展示</span>
</a>
</li>
<li>
<a href="pages/admin/dashboard.html" target="_blank" class="flex items-center gap-3 p-3 rounded-lg hover:bg-gray-50 transition">
<i class="fas fa-chart-line text-gray-400 w-5"></i>
<span class="text-gray-700">数据概览</span>
</a>
</li>
</ul>
</div>
<h2 class="text-lg font-bold text-gray-800 mb-4">页面列表</h2>
<div class="bg-white rounded-xl shadow-sm p-4">
<ul class="space-y-1 text-sm">
<li><a href="pages/admin/dashboard.html" target="_blank" class="block p-2 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded">数据概览</a></li>
<li><a href="pages/admin/quiz-records.html" target="_blank" class="block p-2 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded">抽背记录查询</a></li>
<li><a href="pages/admin/student-management.html" target="_blank" class="block p-2 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded">学生管理</a></li>
<li><a href="pages/admin/knowledge-management.html" target="_blank" class="block p-2 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded">知识点管理</a></li>
<li><a href="pages/admin/task-management.html" target="_blank" class="block p-2 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded">学习任务管理</a></li>
<li><a href="pages/admin/settings.html" target="_blank" class="block p-2 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded">系统设置</a></li>
</ul>
</div>
<h2 class="text-lg font-bold text-gray-800 mb-4 mt-6">设计规范</h2>
<div class="bg-white rounded-xl shadow-sm p-4">
<h3 class="text-sm font-semibold text-gray-700 mb-3">色彩系统</h3>
<div class="space-y-2">
<div class="flex items-center gap-2">
<div class="w-6 h-6 rounded" style="background: #1890FF"></div>
<span class="text-xs text-gray-600">主色 #1890FF</span>
</div>
<div class="flex items-center gap-2">
<div class="w-6 h-6 rounded" style="background: #52C41A"></div>
<span class="text-xs text-gray-600">成功 #52C41A</span>
</div>
<div class="flex items-center gap-2">
<div class="w-6 h-6 rounded" style="background: #FAAD14"></div>
<span class="text-xs text-gray-600">警告 #FAAD14</span>
</div>
<div class="flex items-center gap-2">
<div class="w-6 h-6 rounded" style="background: #F5222D"></div>
<span class="text-xs text-gray-600">错误 #F5222D</span>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- 页脚 -->
<footer class="bg-white border-t py-6">
<div class="max-w-7xl mx-auto px-6">
<div class="flex items-center justify-between text-sm text-gray-500">
<div>
<span>AI 智能抽背助手原型系统</span>
<span class="mx-2">|</span>
<span>基于 PRD 和 UX 设计规范生成</span>
</div>
<div>2026-03-28</div>
</div>
</div>
</footer>
<script>
const md = window.markdownit({ html: true, linkify: true, breaks: true });
function toggleDoc(docFile) {
const container = document.getElementById('doc-' + docFile);
const isHidden = container.classList.contains('hidden');
// 隐藏所有其他文档
document.querySelectorAll('.doc-content').forEach(el => {
el.classList.add('hidden');
});
if (isHidden) {
// 显示加载动画
container.innerHTML = '<div class="text-center py-12"><i class="fas fa-spinner fa-spin text-4xl text-blue-500"></i><p class="mt-4 text-gray-600">正在加载文档...</p></div>';
container.classList.remove('hidden');
loadDoc(docFile, container);
}
}
async function loadDoc(doc, container) {
const paths = ['/planning-artifacts/' + doc, '/' + doc];
for (const path of paths) {
try {
const res = await fetch(path);
if (res.ok) {
const text = await res.text();
const html = md.render(text);
container.innerHTML = '<div class="markdown-body">' + html + '</div>';
return;
}
} catch (e) { continue; }
}
container.innerHTML = '<div class="bg-red-50 border border-red-200 text-red-700 px-4 py-3 rounded-lg">无法加载文档: ' + doc + '</div>';
}
</script>
</body>
</html>