题库管理优化方案
目标
优化 FilamentAdmin 中的题库管理界面,提升用户体验并利用新开发的后端能力(难度分级、题目类型)。
需要用户审查
- UI 重构:界面将迁移使用 DaisyUI 组件,打造更现代、更“高级”的外观。
- 新功能:增加“难度”和“题目类型”的筛选和生成选项。
建议变更
FilamentAdmin
[修改] QuestionServiceApi.php
- 更新
listQuestions 方法,使其能够接收并传递 type(题目类型)筛选参数到后端 API。
[修改] QuestionManagement.php
- 添加公共属性
$selectedType。
- 为生成模态框添加公共属性
$generateDifficulty 和 $generateType。
- 更新
questions() 和 meta() 方法,将 type 加入筛选条件。
- 更新
executeGenerate() 方法,将 difficulty 和 type 传递给 QuestionBankService。
- 添加
getQuestionTypeOptions() 方法,为 UI 提供选项数据。
[修改] question-management.blade.php
- UI 重设计:使用 DaisyUI 组件替换标准的 Tailwind 类:
card 用于统计和筛选区域。
table 配合 table-zebra 用于题目列表。
badge 用于显示难度和类型指示器。
modal 用于生成对话框。
- 筛选器:添加“题目类型”下拉菜单。
- 生成模态框:添加“难度”和“题目类型”的下拉菜单。
- 视觉效果:改进间距、排版和空状态展示。
验证计划
自动化测试
- 单元测试:
- 创建
tests/Unit/Services/QuestionServiceApiTest.php,验证 listQuestions 是否正确处理 type 和 difficulty 筛选参数。
- 创建
tests/Feature/Livewire/QuestionManagementTest.php,验证:
- 组件是否正确挂载。
- 筛选器是否更新
questions 属性。
- “生成”操作是否触发服务方法。
- 浏览器测试(使用 Agent 工具):
- 验证“生成题目”模态框能否正常打开和关闭。
- 验证“题目类型”下拉菜单是否显示并可用。
手动验证
- UI 检查:
- 打开
/admin/question-management。
- 验证页面是否加载了新的 DaisyUI 样式。
- 检查统计卡片是否显示正确。
- 筛选功能:
- 选择一个“题目类型”(例如:选择题),验证列表是否更新。
- 选择一个“难度”,验证列表是否更新。
- 生成功能:
- 点击“生成题目”。
- 选择知识点、技能、难度和类型。
- 点击“开始生成”。
- 验证成功通知和任务状态监控。
- 响应式检查:
开发惯例:测试标准
对于每一个新功能或优化:
- 单元/功能测试:必须创建或更新以覆盖业务逻辑。
- UI/页面测试:验证渲染和响应式表现。
- 功能测试:验证端到端流程(例如:生成 -> 回调 -> 列表更新)。