94 Commits

Author SHA1 Message Date
03f3e14f6e 添加共享试卷参与人数统计功能
功能说明:
- 后端:GetExamList 接口新增 participant_count 字段
- 前端:试卷卡片显示"X 人参与"标签
- 统计逻辑:计算原始试卷和所有分享副本的不同用户数

实现细节:
- 自动识别原始试卷和分享副本
- 统计所有已完成考试的不同用户
- 使用团队图标(TeamOutlined)展示参与人数

修改文件:
- internal/handlers/exam_handler.go: 添加参与人数统计逻辑
- web/src/types/exam.ts: 更新类型定义
- web/src/pages/ExamManagement.tsx: 显示参与人数标签

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 21:27:03 +08:00
3704d52a26 调整模拟考试试卷结构和评分规则
修改试卷组成为:
- 填空题:20道(40分,每题2分)
- 判断题:10道(10分,每题1分)
- 单选题:10道(10分,每题1分)
- 多选题:10道(20分,每题2分)
- 简答题:1道(10分)
- 论述题:2道供选择,根据职位类型作答1道(10分)

总分:100分(包含两道论述题但用户只需选答其中一道)

主要变更:
- exam_handler.go: 更新试卷创建时的题型配置
- exam_grading.go: 更新阅卷时的分值映射表
- 确保创建和评分逻辑一致

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 21:18:18 +08:00
4f95514af8 添加打印试卷页面的职位填写横线
- 在姓名后面添加职位的填写横线:职位:________________
- 调整试卷头部布局,从三栏改为四栏(日期、姓名、职位、成绩)
- 使用flex布局确保各元素合理分布和对齐

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 22:38:36 +08:00
9887f99a89 修改卡片统计标签为横向排列
- 将examStats从垂直排列改为横向排列
- 三个标签(最高分、考试次数、进行中)在同一行显示
- 添加flex-wrap允许在窄屏时换行
- 标签内容居中对齐

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 23:01:18 +08:00
e057505e8a 修复考试卡片布局:固定每行显示3个
- 将网格布局从自适应改为固定3列
- 确保所有卡片等高(stretch)
- 添加flexbox布局确保卡片内容正确伸展
- 解决有"进行中"标签时高度不一致的问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 22:57:46 +08:00
9d1946b611 修复试卷标题在没有分享人时的布局问题
- 将标题默认底部边距从12px改为0
- 当有分享标签时动态添加12px底部边距
- 确保无分享标签时标题位置协调

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 22:53:35 +08:00
28ea27e823 增大打印试卷答题框空间
简答题:
- 行数: 5行 → 8行
- 行高: 25px → 30px

论述题:
- 行数: 5行 → 10行
- 行高: 25px → 35px

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 22:50:48 +08:00
c520e5b6a7 调整模拟考试题型分值
- 简答题: 10分 → 8分
- 论述题(普通/管理): 4.5分 → 9分

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 22:44:32 +08:00
4ac3243f6e 重构AI配置并修复前端类型错误
1. 删除AIConfig中未使用的属性(BaseURL、Model)
2. 修复ExamManagement页面Tag组件的size属性错误
3. 添加shared_by.nickname类型定义
4. 优化AI评分提示词,移除冗余的评分依据列表

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 22:23:00 +08:00
1107d5d81c 优化考试管理页面UI和移动端响应式设计
主要改进:
- 重新设计试卷卡片布局,使用蓝色渐变头部
- 优化操作按钮样式,简化为初版设计
- 调整按钮顺序,将考试按钮放在第一位
- 优化统计数据显示,使用垂直标签布局
- 修复移动端布局问题,确保按钮在一行显示
- 调整按钮尺寸,适配不同屏幕大小
- 完善试卷分享功能的UI集成
- 修复打印页面移动端按钮布局问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 21:58:34 +08:00
yanlongqi
ebf7c8890a 优化考试管理页面UI和用户体验
- 重构试卷列表页面布局,提升视觉效果
- 优化试卷卡片样式,添加悬停效果和背景装饰
- 改进移动端响应式设计,增强移动设备用户体验
- 统一返回按钮样式,使用一致的图标和文案
- 调整页面间距和对齐方式,提升整体视觉层次
- 优化代码格式,统一引号使用规范

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 11:34:09 +08:00
yanlongqi
74d692ed2c 修复试卷打印时考试说明圆角被遮挡的问题
- 增加打印页面边距从0.8cm到1cm,为圆角提供更多显示空间
- 保留考试说明卡片的圆角效果,设置overflow: visible防止裁剪
- 添加padding为圆角提供内部缓冲空间
- 修正考试说明中的文字描述(填空题改为简答题)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 10:48:28 +08:00
0464223d00 改为使用下划线字符填充而不是CSS样式
1. 将填空题从CSS边框样式改为传统的下划线字符(____)
2. 移除像素计算,使用纯文本下划线字符
3. 保持最少8个下划线字符的最小长度
4. 根据答案长度动态调整下划线数量

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 02:45:15 +08:00
78413e98d7 调整填空题下划线最小长度为8个字符
1. 将填空题下划线最小宽度从2个字符(8px)调整为8个字符(32px)
2. 更新默认宽度策略:单个填空32px,多个填空30-40px循环
3. 确保无论答案长度如何,下划线都有足够的空间供用户书写

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 02:44:08 +08:00
2c090d5fbd 修复TypeScript编译错误
1. 移除ExamAnswerView.tsx中未使用的导入和函数
2. 修复Exam类型缺少title属性的问题
3. 更新SubmitExamResponse类型定义,添加record_id字段
4. 移除函数中的未使用参数,消除编译警告
5. 修复可能为undefined的访问问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 02:42:38 +08:00
43680cce22 优化试卷打印功能并移除打印答案功能
1. 移除打印答案按钮及相关功能,简化界面
2. 优化填空题打印效果,使用答案长度计算下划线宽度
3. 改进试卷头部布局,添加日期和成绩栏
4. 更新考试说明,调整考试时间为60分钟
5. 优化打印样式,使用宋体字并减小间距
6. 完善论述题显示,添加用户类型提示
7. 后端支持同时返回两种论述题题目

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 02:39:48 +08:00
c4a8b28abe 优化模拟考试答案查看页面的显示效果
主要改进:
1. 新增ExamAnswerView页面和样式文件
2. 优化填空题间距,减少过大的垂直边距
3. 紧凑化题型之间的间距,提升页面密度
4. 去掉题型标题的背景色和左侧竖线
5. 为题型标题添加汉字序号(一、二、三等)
6. 去掉选择题表格的边框,简化界面
7. 解决打印时显示"试卷答案"标题的问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 01:23:10 +08:00
48730369e5 删除文档中关于script文件夹的信息 2025-11-17 21:44:16 +08:00
df76625007 进一步优化排行榜切换样式以符合整体主题&#10;&#10;1. 统一使用主题色#007aff替代之前的蓝色渐变&#10;2. 使切换容器样式与卡片样式保持一致&#10;3. 添加按钮active状态样式&#10;4. 优化毛玻璃效果和阴影以匹配整体设计
🤖 Generated with [Claude Code](https://claude.com/claude-code)&#10;&#10;Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 21:31:14 +08:00
d7926615f1 修复排行榜切换样式问题&#10;&#10;1. 修复巨大的蓝色方块问题&#10;2. 调整滑块宽度计算和容器样式&#10;3. 优化切换按钮的布局和样式
🤖 Generated with [Claude Code](https://claude.com/claude-code)&#10;&#10;Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 21:26:27 +08:00
6eb6c5243d 优化排行榜切换样式&#10;&#10;1. 添加现代化的滑动切换效果&#10;2. 使用渐变背景和阴影提升视觉效果&#10;3. 添加平滑的动画过渡效果
🤖 Generated with [Claude Code](https://claude.com/claude-code)&#10;&#10;Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 21:22:48 +08:00
6efc437198 实现总排行榜功能&#10;&#10;1. 在后端添加GetTotalRanking函数和API路由&#10;2. 在前端添加总排行榜展示和切换功能&#10;3. 用户现在可以在首页切换查看今日排行榜和总排行榜
🤖 Generated with [Claude Code](https://claude.com/claude-code)&#10;&#10;Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 21:17:28 +08:00
69ae78b009 使用知识库分析答案 2025-11-13 07:17:30 +08:00
59364700bc feat: 练习进度系统重构和AI评分持久化
重大改进:
- 练习进度模型优化:从"每题一条记录"改为"每用户每类型一条记录",提升性能和数据管理
- 完全基于后端数据库恢复答题进度,移除 localStorage 依赖,提高可靠性
- AI评分结果持久化:在答题记录中保存AI评分、评语和建议,支持历史查看

后端改进:
- 新增 /api/practice/progress 接口获取练习进度(支持按类型筛选)
- 新增 /api/practice/progress 接口清除练习进度(支持按类型清除)
- PracticeProgress 模型重构:添加 current_question_id 和 user_answer_records 字段
- UserAnswerRecord 模型增强:添加 ai_score、ai_feedback、ai_suggestion 字段
- 提交答案时自动保存AI评分到数据库

前端优化:
- 答题进度完全从后端加载,移除 localStorage 备份逻辑
- 修复判断题答案格式转换问题(boolean -> string)
- 优化随机模式:首次答题时随机选择起始题目
- 改进答题历史显示:显示答题序号和历史答案标识
- 已答题目切换时保持答案和结果显示状态
- 清除进度时支持按类型清除(而非清空所有)

技术优化:
- 统一索引策略:从 idx_user_question 改为 idx_user_type
- JSON 字段类型从 jsonp 改为 jsonb(PostgreSQL 性能优化)
- 增加详细的日志记录,便于调试和追踪

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13 05:51:48 +08:00
e724e7120b 渲染填空题内容(将 **** 替换为下划线) 2025-11-13 04:35:23 +08:00
0f544c169d 解决统计数据不对的问题 2025-11-13 03:51:35 +08:00
61e32ef970 修改错题的字段 2025-11-13 03:34:24 +08:00
e651910e74 refactor: 数据库模型优化和答题逻辑重构
主要变更:
- 数据库ID字段统一从 uint 改为 int64,提升数据容量和兼容性
- 重构答题检查逻辑,采用策略模式替代 switch-case
- 新增 PracticeProgress 模型,支持练习进度持久化
- 优化错题本系统,自动记录答题进度和错误历史
- 添加 lib/pq PostgreSQL 驱动依赖
- 移除错题标签管理 API(待后续迁移)
- 前端类型定义同步更新,适配后端模型变更

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13 03:28:39 +08:00
42c54ec90a feat: 错题练习模式添加重新答题功能
- 在QuestionCard组件中添加重新答题按钮
- 仅在错题练习模式(mode=wrong)且答案错误时显示
- 点击后重置当前题目状态,清空答案,允许重新作答
- 添加ReloadOutlined图标提升用户体验

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 22:07:35 +08:00
72d3ca0660 feat: 登录界面添加记住密码功能
- 添加"记住密码"复选框,提升用户体验
- 实现自动保存和填充用户名密码
- 支持取消记住密码时自动清除已保存信息
- 使用localStorage存储登录凭证

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 21:56:00 +08:00
4c06a8acd5 feat: 实现完整的考试系统
实现了包含试卷管理、考试答题、AI智能阅卷的完整考试流程。

**后端新增功能**:
- 试卷管理: 创建试卷、获取试卷列表和详情
- 考试流程: 开始考试、提交答案、查询结果
- AI阅卷: 异步阅卷系统,支持简答题和论述题AI评分
- 实时答题: 题目级别的答案保存和加载
- 数据模型: ExamRecord(考试记录)、ExamUserAnswer(用户答案)

**前端新增页面**:
- 考试管理页面: 试卷列表展示,支持开始/继续考试
- 答题页面: 左侧题目列表、右侧答题区,支持实时保存
- 成绩查看页面: 展示详细评分结果和AI评语

**技术亮点**:
- 按题型固定分值配置(总分100分)
- 异步阅卷机制,提交后立即返回
- 答案实时保存,支持断点续答
- AI评分集成,智能评判主观题
- 响应式设计,适配移动端和PC端

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 03:55:24 +08:00
f8ce822436 fix: 修复答题界面抽屉点击已答题目时答案丢失的问题
- 添加 userAnswers 和 questionResults 状态,存储每道题的答案和结果
- 在 handleSubmit 中保存用户答案和答题结果到 Map
- 在 handleQuestionSelect 中恢复之前的答案和结果
- 更新 saveProgress 和 loadProgress,支持持久化用户答案和结果
- 现在点击抽屉中已答题目会正确显示之前的答案和结果

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 22:24:52 +08:00
b630101d7d 移除题库相关的内容 2025-11-10 21:41:36 +08:00
yanlongqi
d7ba3e1d65 fix: 优化用户管理页面UI显示
- 移除未使用的 TrophyOutlined 图标导入
- 移除总答题数统计的图标前缀,保持UI简洁
- 修复 Spin 组件的使用方式,改为使用子元素而非 tip 属性
- 添加 type_stats 的空值检查,防止潜在的空指针错误

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 16:29:02 +08:00
yanlongqi
f79d1368b8 feat: 集成聊天插件并优化加载机制
前端改动:
- 在首页动态加载聊天插件,仅在首页展示
- 组件卸载时自动清理脚本和 DOM 元素,避免内存泄漏
- 登录、注册、退出登录时使用 window.location 强制刷新页面
- 确保聊天插件在登录后立即显示,退出后立即消失

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 15:15:53 +08:00
yanlongqi
41cf72db12 fix: 修复搜索和随机模式的两个问题
后端改动:
- 修复搜索功能中的 PostgreSQL 类型问题,将 question_id 转换为文本类型进行搜索

前端改动:
- 优化随机刷题模式,避免在答题后选到相同题目

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 13:49:24 +08:00
yanlongqi
f7c662d9ac feat: 优化填空题显示,将 **** 渲染为下划线
- 题库管理:填空题题目内容中的 **** 显示为带下划线的正确答案
- 答题抽屉:填空题题目内容中的 **** 显示为下划线占位符
- 提升填空题的可读性和用户体验

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 13:27:57 +08:00
yanlongqi
53d3ebe318 feat: 优化静态文件服务和部署配置
主要改进:
- 重构静态文件服务: 实现自定义 StaticFileHandler,完善 SPA 路由支持和 Content-Type 处理
- 优化 Docker 构建: 简化前端资源复制逻辑,直接复制整个 dist 目录
- 添加 K8s 部署配置: 包含健康检查探针、资源限制和服务配置
- 前端配置优化: Vite 使用相对路径 base,确保打包后资源路径正确
- 代码清理: 删除已废弃的数据迁移脚本

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 13:12:20 +08:00
yanlongqi
30c5236bea fix: 修复填空题答案处理的两个问题
1. 自动去除填空题答案的前后空白字符,避免因空格导致判题错误
2. 修复填空题答案显示顺序问题 - 保持原顺序而非排序

问题原因:
- 填空题每个空格的位置是固定的,答案顺序不能改变
- 之前对所有数组答案都进行了排序,导致填空题答案显示错位
- 用户输入的空白字符会影响答案匹配

修复方案:
- 在答题输入时自动 trim() 每个答案
- 区分填空题和多选题的答案格式化逻辑

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 11:34:17 +08:00
yanlongqi
aaf1b78f3f feat: 优化随机刷题模式和进度显示
功能改进:
- 随机模式下已答题目不再重复出现
- 所有题目回答完成后显示总结页面
- 进度显示从"题号/总数"改为"已答数/总数"

UI修复:
- 修复小屏幕下悬浮球进度环错位问题
- 使用 SVG viewBox 实现自适应缩放
- 新增超小屏幕(≤380px)优化

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 11:16:46 +08:00
yanlongqi
c50cf9ee7b feat: 为模拟考试功能添加"待测试"标签
在首页的模拟考试卡片标题旁添加橙色"待测试"标签,以醒目地标识该功能当前处于测试阶段。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 10:45:50 +08:00
yanlongqi
b9844c7398 fix: 修复判断题答案为 false 时显示"暂无"的问题
当判断题的正确答案为 false(错误)时,由于 JavaScript 中 false 是假值,
使用 || 运算符会导致跳过该值,从而在用户答错时显示"暂无"。

修复方法:明确检查 correct_answer 是否为 undefined 或 null,
而不是依赖 || 运算符的短路逻辑。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 10:32:51 +08:00
536b7f23c6 fix: 添加选项数据的防御性检查
- 在ExamOnline和ExamPrint中对question.options添加空值检查
- 使用 (question.options || []) 防止 undefined 错误
- 确保在选项数据缺失时不会导致页面崩溃

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 21:27:46 +08:00
a62c5b3e62 fix: 修复考试题目选项数据缺失问题
- 在GetExam API中使用convertToDTO函数转换题目数据
- 确保选项数据(options)正确解析并返回给前端
- 修复前端ExamOnline渲染选择题时的undefined错误

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 21:20:34 +08:00
52fff11f07 feat: 实现模拟考试功能
## 后端实现
- 添加考试数据模型 (Exam)
- 实现考试生成API (/api/exam/generate)
- 实现获取考试详情API (/api/exam/:id)
- 实现提交考试API (/api/exam/:id/submit)
- 支持按题型随机抽取题目
- AI智能评分(简答题和论述题)
- 自动计算总分和详细评分

## 前端实现
- 首页添加"模拟考试"入口
- 考试准备页:显示考试说明,选择在线/打印模式
- 在线答题页:按题型分组显示,支持论述题二选一
- 试卷打印页:A4排版,支持打印试卷/答案
- 成绩报告页:显示总分、详细评分、错题分析

## 核心特性
- 随机组卷:填空10题、判断10题、单选10题、多选10题、简答2题、论述题2选1
- 智能评分:使用AI评分论述题,给出分数、评语和建议
- 答题进度保存:使用localStorage防止刷新丢失
- 打印优化:A4纸张、黑白打印、合理排版
- 响应式设计:适配移动端、平板和PC端

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 20:45:30 +08:00
77bd709613 fix: 修复 TypeScript 编译错误
修复以下问题:
- QuestionManagement.tsx: 修复 label 类型转换错误,使用 String() 确保类型安全
- UserDetail.tsx: 移除未使用的 Space 导入
- WrongQuestions.tsx: 显式声明 onChange 回调参数类型
- WrongQuestions.tsx: 使用空值合并运算符处理可能为 undefined 的值

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 19:10:56 +08:00
344ccd7a44 fix: 优化题库管理选项解析逻辑
- 调整选项解析条件判断顺序,先检查题型再检查选项数据
- 避免非选择题类型尝试解析不存在的选项字段
- 确保简答题和论述题不会误处理选项数据

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 07:06:07 +08:00
60c2cd1406 fix: 修复题库管理新建题目时answer字段未初始化的bug
- 将编辑题目时的表单初始化逻辑应用到新建题目
- 新建时正确设置默认的type、content、answer和options字段
- 题型切换时根据不同题型设置相应的默认answer值
- 确保所有题型都有正确的初始状态

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 06:38:47 +08:00
51c85b41a5 feat: 添加首页今日排行榜功能
- 后端新增 /api/ranking/daily 接口,支持获取今日用户刷题排行
- 排行榜按今日刷题数量和正确率进行排序
- 前端首页展示今日排行榜,显示前10名用户
- 前三名使用金银铜渐变色王冠徽章标识
- 正确率根据分数显示不同颜色(绿色≥80%、黄色≥60%、红色<60%)
- 完整支持移动端、平板端、PC端响应式布局
- 优化排行榜标题与上方内容的间距

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 06:36:06 +08:00
3ecc1c6a18 添加用户管理功能
新增功能:
- 用户管理页面:展示所有用户及答题统计
- 用户详情页面:查看单个用户的详细答题数据
- 管理员权限中间件:仅yanlongqi用户可访问
- 后端API接口:用户列表和详情统计

后端更新:
- 新增 admin_handler.go:用户管理相关处理器
- 新增 admin.go 中间件:管理员权限验证
- 新增 user_stats.go 模型:用户统计数据结构
- 更新 main.go:注册用户管理API路由

前端更新:
- 新增 UserManagement 页面:用户列表和统计卡片
- 新增 UserDetail 页面:用户详细信息和题型统计
- 更新 Home 页面:添加用户管理入口(仅管理员可见)
- 更新 App.tsx:添加用户管理路由和权限保护
- 更新 API 接口:添加用户管理相关接口定义

UI优化:
- 用户管理页面标题居中显示,参考错题本设计
- 统计卡片使用16px padding
- 返回按钮使用绝对定位,标题居中
- 字体大小统一为18px,字重700

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 06:21:15 +08:00