optimization_plan.md 3.3 KB

题库管理优化方案

目标

优化 FilamentAdmin 中的题库管理界面,提升用户体验并利用新开发的后端能力(难度分级、题目类型)。

需要用户审查

  • UI 重构:界面将迁移使用 DaisyUI 组件,打造更现代、更“高级”的外观。
  • 新功能:增加“难度”和“题目类型”的筛选和生成选项。

建议变更

FilamentAdmin

[修改] QuestionServiceApi.php

  • 更新 listQuestions 方法,使其能够接收并传递 type(题目类型)筛选参数到后端 API。

[修改] QuestionManagement.php

  • 添加公共属性 $selectedType
  • 为生成模态框添加公共属性 $generateDifficulty$generateType
  • 更新 questions()meta() 方法,将 type 加入筛选条件。
  • 更新 executeGenerate() 方法,将 difficultytype 传递给 QuestionBankService
  • 添加 getQuestionTypeOptions() 方法,为 UI 提供选项数据。

[修改] question-management.blade.php

  • UI 重设计:使用 DaisyUI 组件替换标准的 Tailwind 类:
    • card 用于统计和筛选区域。
    • table 配合 table-zebra 用于题目列表。
    • badge 用于显示难度和类型指示器。
    • modal 用于生成对话框。
  • 筛选器:添加“题目类型”下拉菜单。
  • 生成模态框:添加“难度”和“题目类型”的下拉菜单。
  • 视觉效果:改进间距、排版和空状态展示。

验证计划

自动化测试

  • 单元测试
    • 创建 tests/Unit/Services/QuestionServiceApiTest.php,验证 listQuestions 是否正确处理 typedifficulty 筛选参数。
    • 创建 tests/Feature/Livewire/QuestionManagementTest.php,验证:
      • 组件是否正确挂载。
      • 筛选器是否更新 questions 属性。
      • “生成”操作是否触发服务方法。
  • 浏览器测试(使用 Agent 工具):
    • 验证“生成题目”模态框能否正常打开和关闭。
    • 验证“题目类型”下拉菜单是否显示并可用。

手动验证

  1. UI 检查
    • 打开 /admin/question-management
    • 验证页面是否加载了新的 DaisyUI 样式。
    • 检查统计卡片是否显示正确。
  2. 筛选功能
    • 选择一个“题目类型”(例如:选择题),验证列表是否更新。
    • 选择一个“难度”,验证列表是否更新。
  3. 生成功能
    • 点击“生成题目”。
    • 选择知识点、技能、难度和类型。
    • 点击“开始生成”。
    • 验证成功通知和任务状态监控。
  4. 响应式检查
    • 调整浏览器窗口大小,检查移动端视图兼容性。

开发惯例:测试标准

对于每一个新功能或优化:

  1. 单元/功能测试:必须创建或更新以覆盖业务逻辑。
  2. UI/页面测试:验证渲染和响应式表现。
  3. 功能测试:验证端到端流程(例如:生成 -> 回调 -> 列表更新)。