57 Commits

Author SHA1 Message Date
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
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
e6f5bcce7b 优化多选题答案显示顺序
修改多选题答案显示逻辑,按照 ABCD 字母顺序排序显示用户答案和正确答案,提升答案对比的清晰度和可读性。

修改内容:
- 在 formatAnswer 函数中,对数组类型的答案进行字母排序
- 无论用户选择顺序如何,答案都会按 A、B、C、D 的顺序显示
- 使用数组副本排序,避免修改原始数据

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 04:49:52 +08:00
fc508884fe 配置 Ant Design 组件为中文语言
通过添加 ConfigProvider 和 zhCN 语言包,将所有 antd 组件的文本显示为中文。这包括日期选择器、分页器、表格等组件的界面文本。

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 04:41:04 +08:00
d56156192d 优化首页用户信息更多操作按钮的可见性
- 增大按钮尺寸(28px → 32px)
- 添加默认背景色,使按钮更加明显
- 增大图标尺寸和加深颜色
- 添加缩放交互效果
- 移动端适配优化

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 04:35:37 +08:00
fb5edce22f 优化错题本页面UI和标题样式
主要改动:
1. 统一标题样式,与答题页面保持一致
   - 标题居中显示
   - 返回按钮使用绝对定位在左侧
   - 移除标题中的图标
   - Title组件level改为3
   - 响应式字体大小:移动端16px,PC端20px,超宽屏22px

2. 优化首页统计文案
   - 将"已刷"改为"已刷题目",更加清晰明确

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 04:33:12 +08:00
2fbeb23947 优化错题本功能和UI设计
1. 错题本系统重构:
   - 新增错题服务层 (wrong_question_service.go)
   - 实现智能推荐算法(基于掌握度和错误次数)
   - 添加掌握度追踪机制(连续答对6次标记为已掌握)
   - 支持错题筛选和排序功能
   - 新增错题统计趋势分析

2. UI优化:
   - 美化错题本界面,采用毛玻璃卡片设计
   - 添加四宫格统计卡片(错题总数、已掌握、未掌握、掌握率)
   - 优化筛选和操作按钮布局
   - 使用条状进度条显示掌握度
   - 改进响应式设计,优化移动端体验

3. 功能完善:
   - 修复判断题答案显示问题
   - 当掌握率100%时禁用"开始练习"按钮
   - 删除测试文件和 nul 文件
   - 更新文档 (CLAUDE.md)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 04:20:42 +08:00
7615f16291 修复判断题答案图标显示问题
- 当判断题答案为"错误"时,显示叉号图标(CloseCircleOutlined)而非对号
- 当判断题答案为"正确"时,保持显示对号图标(CheckCircleOutlined)
- 优化视觉反馈,使答案图标更加直观明确

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 00:28:08 +08:00
4a7c9a2593 优化首页UI设计和图标样式
主要改进:
- 重构用户信息卡片,新增统计数据展示区域
- 统一题型卡片图标样式,添加渐变背景容器
- 优化快速开始卡片的图标设计
- 调整配色方案为明快风格,提升视觉效果
- 修改题型图标:判断题使用CloseCircleOutlined,填空题使用FormOutlined,论述题使用FileMarkdownOutlined
- 完善响应式设计,优化移动端和PC端显示效果

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 00:26:44 +08:00
b082e708ae 修复登录失败时无错误提示的问题
问题:登录失败时,401 错误会触发自动跳转到登录页,
导致错误提示来不及显示就被页面刷新覆盖。

解决方案:在 fetchWithAuth 函数中,只有当用户不在登录
页面时才执行 401 错误的自动跳转逻辑,让登录页面能够
正常显示错误提示信息。

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 23:19:52 +08:00
45299b2d7e 优化UI体验和修复Markdown渲染问题
## 主要改进

### 1. 修复AI解析Markdown渲染混乱
- 安装remark-gfm插件支持GitHub Flavored Markdown
- 优化ReactMarkdown组件样式配置
- 支持表格、代码块、引用、列表等完整Markdown语法
- 改进代码块样式,区分行内代码和代码块
- 优化排版,提升可读性

### 2. 用户界面优化
- 修改个人信息中"昵称"改为"姓名"
- 调整答题设置提示位置到第一行
- 去除答题设置提示标题,使界面更简洁

### 3. 新增用户功能
- 添加修改个人信息功能(姓名、身份类型)
- 添加修改密码功能
- 优化用户信息显示和编辑体验

### 4. 技术改进
- 修复Home.tsx中handleLogout函数声明顺序问题
- 添加更完善的Markdown样式定义
- 优化流式渲染体验

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 23:14:03 +08:00
b30647d81b 重构题目练习模式,优化用户体验
主要变更:
- 移除独立的随机题目 API 和快速开始卡片
- 添加应用图标 (icon.svg) 和品牌标识
- 优化首页布局,添加 logo 和"安全保密考试题库"标语
- 将随机模式改为答题页面内的可选开关(默认关闭)
- 改进错题练习逻辑,单独处理随机错题功能
- 同步更新 README.md 文档

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 22:45:44 +08:00
ac3249a4a4 优化题目列表页面UI和交互体验
主要改进:
1. 优化题目标题布局
   - 调整标题大小为 level 5,更加精致
   - 添加占位元素使标题真正居中显示
   - 优化标题与返回按钮的视觉平衡

2. 统一标签样式
   - 题目列表中的标签改为统一的蓝色分类标签
   - 题目顺序调整:「第X题」在前,分类标签在后
   - 移除题目ID显示,界面更简洁

3. 优化题目导航抽屉
   - 导航抽屉从按题型分组改为按分类分组
   - 使用统一的蓝色分类标签
   - 题号网格显示题目序号而非题目ID
   - 与答题页面QuestionCard保持统一的视觉风格

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 22:27:55 +08:00
yanlongqi
f3360aab48 问题列表选项的优化 2025-11-07 22:08:33 +08:00
yanlongqi
c545f908df 添加题目列表页面导航系统和悬浮按钮组
- 新增题目导航抽屉组件,按题型分组显示题目编号
- 实现点击题号平滑滚动并高亮定位功能
- 添加悬浮按钮组:返回顶部和题目导航
- 美化悬浮按钮样式,采用渐变色和阴影效果
- 题号使用圆形小巧设计,提升视觉效果
- 适配移动端和PC端响应式布局

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 18:15:50 +08:00
yanlongqi
fabc5c8f3e 优化答题页面导航系统和UI体验
主要改进:
- 新增题目导航抽屉组件,支持快速跳转到任意题目
- 新增悬浮球导航按钮,实时显示答题进度和统计信息
- 优化顶部导航栏,移除进度条,简化为返回、标题和设置三个按钮
- 将答题设置改为弹窗模式,提供更好的交互体验
- 优化题目列表卡片设计,减小高度使其更紧凑
- 题目列表显示题号、分类标签、题目内容和答题状态
- 支持答题进度持久化,刷新页面不丢失进度

技术细节:
- 使用 Ant Design 的 Drawer、Modal、Tag 等组件
- 采用 CSS Modules 实现样式隔离
- 使用 LocalStorage 保存答题进度和设置
- 响应式设计,适配移动端和PC端
- 修复 TypeScript 编译错误

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 17:45:53 +08:00
yanlongqi
3b7133d9de 添加论述题权限控制系统和AI评分功能
本次更新实现了基于用户类型的论述题访问权限控制,并为论述题添加了专门的AI评分功能。

后端更新:
- 添加论述题权限验证:根据用户类型(ordinary-person/management-person)控制不同论述题的访问权限
- 新增 GradeEssay 方法:为论述题提供专门的AI评分,不依赖标准答案,基于保密法规进行专业评分
- 优化AI评分提示词:增加法规依据要求,返回参考答案、评分依据等更详细的评分信息
- 添加用户类型管理:新增 UpdateUserType API,支持用户更新个人类型
- 路由调整:将练习题相关API移至需要认证的路由组

前端更新:
- 论述题答题界面优化:不显示标准答案,展示AI评分的参考答案和评分依据
- 用户类型选择:登录/注册时支持选择用户类型
- 权限控制适配:根据用户类型显示对应的论述题列表

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 16:47:37 +08:00
yanlongqi
2e526425a0 优化AI评分系统和答题体验
后端改进:
- 简答题AI评分改为必须成功,失败则返回错误提示
- 实现AI评分重试机制,最多重试5次,采用指数退避策略
- AI评分温度设置为0,确保评分结果更加一致和可预测
- 优化AI评分提示词,要求严格按照标准答案评分
- 添加详细的评分标准(85-100分/60-84分/40-59分/0-39分)
- 强化系统消息,要求评分客观、一致、可预测

前端改进:
- 添加自动下一题功能,答对后自动跳转(默认开启)
- 支持配置自动跳转延迟时间(1-10秒,默认2秒)
- 使用Popover组件优化设置UI,保持界面简洁
- 设置保存到localStorage,支持跨会话持久化

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 17:12:55 +08:00
yanlongqi
24d098ae92 添加AI流式题目解析功能
实现了基于OpenAI的流式题目解析系统,支持答题后查看AI生成的详细解析。

主要功能:
- 流式输出:采用SSE (Server-Sent Events) 实现实时流式输出,用户可看到解析逐字生成
- Markdown渲染:使用react-markdown渲染解析内容,支持标题、列表、代码块等格式
- 智能提示词:根据题目类型(选择题/填空题/判断题等)动态调整提示词
- 选择题优化:对选择题提供逐项分析和记忆口诀
- 重新生成:支持重新生成解析,temperature设为0确保输出一致性
- 优化加载:加载指示器显示在内容下方,不遮挡流式输出

技术实现:
- 后端:新增ExplainQuestionStream方法支持流式响应
- 前端:使用ReadableStream API接收SSE流式数据
- UI:优化加载状态显示,避免阻塞内容展示
- 清理:删除不再使用的scripts脚本文件

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 16:04:07 +08:00
yanlongqi
201ddf5857 优化填空题答案显示:直接在横线位置显示答案
改进内容:
- 答案直接替换横线位置,不使用上方标签形式
- 答案文字显示为绿色加粗,带下划线突出显示
- 填空题不再显示底部答案区域,避免重复
- 视觉效果更简洁直观

样式调整:
- 答案颜色:#52c41a(绿色)
- 字体加粗:font-weight 600
- 底部边框:2px实线绿色下划线
- 最小宽度60px,文字居中对齐

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 13:53:05 +08:00
yanlongqi
f2b5e623b0 修复题目列表页面的TypeScript编译错误
移除未使用的CloseCircleOutlined导入

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 13:41:09 +08:00
yanlongqi
ea051e9380 添加AI评分系统和题目列表功能
新增功能:
1. AI智能评分系统
   - 集成OpenAI兼容API进行简答题评分
   - 提供分数、评语和改进建议
   - 支持自定义AI服务配置(BaseURL、APIKey、Model)

2. 题目列表页面
   - 展示所有题目和答案
   - Tab标签页形式的题型筛选(选择题、多选题、判断题、填空题、简答题)
   - 关键词搜索功能(支持题目内容和编号搜索)
   - 填空题特殊渲染:****显示为下划线
   - 判断题不显示选项,界面更简洁

3. UI优化
   - 答题结果组件重构,支持AI评分显示
   - 首页新增"题目列表"快速入口
   - 响应式设计,适配移动端和PC端

技术改进:
- 添加AI评分服务层(internal/services/ai_grading.go)
- 扩展题目模型支持AI评分结果
- 更新配置管理支持AI服务配置
- 添加AI评分测试脚本和文档

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 13:36:30 +08:00
yanlongqi
91f5e096f8 优化答题界面布局:调整内边距和间距
主要更改:
- 移动端优化:返回按钮和标题在同一行,标题左对齐
- 添加题目内边距:左右各 20px (移动端 12px),提升阅读体验
- 缩短顶部导航与题目距离:
  - PC端:180px → 135px
  - 平板:170px → 135px
  - 移动端:200px → 160px
- 更紧凑合理的布局,优化视觉层次

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 11:35:01 +08:00
yanlongqi
5bfdfe71c1 去掉导航和题目内容的卡片样式,简化界面
主要更改:
- 移除顶部导航的卡片背景和边框:只保留毛玻璃背景效果
- 移除顶栏底部的分隔线:去掉 box-shadow 和 border-bottom
- 移除题目卡片样式:QuestionCard 从 Card 组件改为 div,去掉所有卡片装饰
- 调整内容区顶部间距:减少 padding-top,更紧凑的布局
- 简化视觉层次:整体界面更加扁平化和现代化

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 11:28:22 +08:00
yanlongqi
18b92e5452 将答题界面的导航和进度条整合并固定在顶部
主要更改:
- 整合导航和进度条:将两者放在同一个卡片中,避免重复的卡片边框,提升美观性
- 固定顶栏:顶部导航和进度条固定在页面顶部,滚动时始终可见
- 移动端优化:调整返回按钮位置和布局顺序,优化小屏幕显示效果
- 进度条组件简化:移除 Card 包裹,直接渲染 Progress 组件
- 响应式布局:为固定顶栏预留合适的空间,移动端、平板、PC端各自适配

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 11:23:06 +08:00
yanlongqi
3c97985af0 优化答题界面布局和视觉设计
主要更改:
- 头部布局优化:将返回按钮、标题、统计信息整合到一行,使用毛玻璃卡片样式
- 统计信息重构:将正确/错误次数移到头部右侧,采用紧凑的标签+数值设计
- 进度条优化:使用卡片包裹,添加毛玻璃效果,简化显示内容,只保留进度条
- 响应式优化:移动端自动调整为多行布局,平板和PC端保持横向一行显示
- 视觉统一:所有组件使用一致的毛玻璃风格和 macOS 设计语言

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 11:14:48 +08:00
yanlongqi
c0a280132c 优化UI风格并添加管理员权限系统
主要更改:
- 新增管理员权限系统:添加 AdminAuth 中间件和 AdminRoute 组件,限制题库管理功能仅 yanlongqi 用户可访问
- UI 全面改版为白色毛玻璃风格(macOS 风格):应用毛玻璃效果、优化圆角和阴影、统一配色方案
- 登录页优化:将注册功能改为模态框形式,简化登录界面
- 首页优化:题库管理入口仅对管理员用户显示,优化响应式布局和卡片排列
- 移除底部导航栏:简化布局,改善用户体验

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 10:58:43 +08:00
5d1b088e06 打包成docker镜像 2025-11-05 09:37:29 +08:00
7c407db78b 修复判断题和填空题的答题问题
## 主要修复
- 修复判断题答案验证:前端提交时将字符串转换为布尔值
- 修复判断题答案显示:支持布尔值和字符串格式的正确显示
- 修复判断题选项顺序:保持"正确"在前、"错误"在后
- 修复填空题答案残留:题目切换时自动清空填空输入框
- 优化填空题验证:去除前后空格,添加详细日志

## 技术细节
- Question.tsx: 判断题提交前将 "true"/"false" 转为 boolean
- AnswerResult.tsx: formatAnswer 函数支持 boolean 类型
- QuestionCard.tsx: 判断题不排序,填空题切换时重置状态
- practice_handler.go: 填空题比较前 TrimSpace,添加调试日志

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 22:23:00 +08:00
dd2b197516 优化题库管理系统:实现自动编号、动态表单和答案回显
**后端优化**
- 实现题目编号自动生成机制,按题型连续编号
- 移除分页限制,返回所有题目
- 支持题型筛选和关键词搜索
- 题目按题型和编号排序
- DTO 中包含答案字段,支持编辑时回显
- 选项按字母顺序排序

**前端优化**
- 移除手动输入题目ID,系统自动生成
- 实现动态表单,支持添加/删除选项和答案
- 添加题型筛选下拉框
- 添加搜索框,支持搜索题目内容和编号
- 优化答案回显逻辑,直接使用后端返回的答案数据
- 表格显示题目编号列

**修复问题**
- 修复 PostgreSQL SQL 语法错误
- 修复编辑题目时答案无法正确回显的问题
- 修复题目列表不完整的问题

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 22:00:29 +08:00
yanlongqi
9e37cf8225 在首页添加错题数量统计显示
主要改动:
1. 后端修改:
   - 在 UserStatistics 模型中添加 wrong_questions 字段
   - 在 GetStatistics 接口中查询并返回错题总数(包括已掌握和未掌握)

2. 前端修改:
   - 在 Statistics 接口中添加 wrong_questions 字段
   - 在首页统计卡片中新增"错题数量"显示
   - 调整布局为4列展示(题库总数、已答题数、错题数量、正确率)

3. UI优化:
   - 错题数量使用红色显示(#ff4d4f)
   - 响应式布局:移动端每行2个,PC端每行4个
   - 与错题本页面的统计数据保持一致

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 19:28:57 +08:00
yanlongqi
de8480a328 重构答题系统:组件拆分、进度跟踪、完成统计
主要改动:
1. 组件拆分:将Question.tsx(605行)拆分为4个子组件(303行)
   - QuestionProgress: 进度条和统计显示
   - QuestionCard: 题目卡片和答题界面
   - AnswerResult: 答案结果展示
   - CompletionSummary: 完成统计摘要

2. 新增功能:
   - 答题进度条:显示当前进度、正确数、错误数
   - 进度保存:使用localStorage持久化答题进度
   - 完成统计:答完所有题目后显示统计摘要和正确率
   - 从第一题开始:改为顺序答题而非随机

3. UI优化:
   - 移除右上角统计按钮
   - 移除底部随机题目、题目列表、筛选按钮
   - 移除"开始xxx答题"提示消息
   - 简化页面布局

4. 代码优化:
   - 提高代码可维护性和可测试性
   - 单一职责原则,每个组件负责一个特定功能

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 18:39:15 +08:00
yanlongqi
6082ca0bf3 添加错题删除功能和优化错题列表
**新增功能**:
- 新增删除单个错题的接口 (DELETE /api/wrong-questions/:id)
- 错题列表每个项添加删除按钮
- 支持单独删除不想要的错题记录

**技术实现**:
- 后端: 实现DeleteWrongQuestion处理器,确保用户只能删除自己的错题
- 前端: 添加deleteWrongQuestion API 调用
- UI: 在List.Item中添加actions属性,显示删除按钮
- 删除时显示二次确认弹窗

**注意事项**:
- 删除需要确认,防止误操作
- 删除成功后自动刷新列表
- 仅显示操作用户自己的错题

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 15:42:59 +08:00
yanlongqi
2bcf6bdacc 实现完整的用户统计功能和认证系统
**统计功能**:
- 新增UserAnswerRecord模型记录用户答题历史
- 实现GetStatistics接口,统计题库总数、已答题数、正确率
- 在提交答案时自动记录答题历史
- 前端连接真实统计接口,显示实时数据

**认证系统优化**:
- 新增Auth中间件,实现基于Token的身份验证
- 登录和注册时自动生成并保存Token到数据库
- 所有需要登录的接口都通过Auth中间件保护
- 统一处理未授权请求,返回401状态码

**错题练习功能**:
- 新增GetRandomWrongQuestion接口,随机获取错题
- 支持错题练习模式(/question?mode=wrong)
- 优化错题本页面UI,移除已掌握功能
- 新增"开始错题练习"按钮,直接进入练习模式

**数据库迁移**:
- 新增user_answer_records表,记录用户答题历史
- User表新增token字段,存储用户登录凭证

**技术改进**:
- 统一错误处理,区分401未授权和404未找到
- 优化答题流程,记录历史和错题分离处理
- 移除异步记录错题,改为同步处理保证数据一致性

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 15:26:27 +08:00
yanlongqi
9ca8f123e7 优化UI交互体验:整合用户中心到首页并改进答题流程
- 删除独立的Profile页面,将用户信息整合到Home页面顶部
- 在首页添加用户头像、昵称、用户名显示和退出登录按钮
- 优化响应式布局:移动端和PC端用户信息区域自适应
- 答题页面新增返回首页按钮,方便导航
- 实现答对自动跳转:答案正确后1秒自动进入下一题
- 更新底部导航栏:移除"我的"选项,保留首页和答题
- 调整Header布局为flex布局,支持左右分区显示

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 14:29:40 +08:00
yanlongqi
6446508954 实现完整的错题本功能模块
后端实现:
- 创建错题数据模型和数据库表结构
- 实现错题记录、查询、统计、标记和清空API
- 答题错误时自动记录到错题本
- 支持重复错误累计次数和更新时间

前端实现:
- 创建错题本页面,支持查看、筛选和管理错题
- 实现错题统计展示(总数、已掌握、待掌握)
- 支持标记已掌握、清空错题本和重做题目
- 在首页和个人中心添加错题本入口
- 完整的响应式设计适配移动端和PC端

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 13:44:51 +08:00