# 题库管理优化方案

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

## 需要用户审查
- **UI 重构**：界面将迁移使用 DaisyUI 组件，打造更现代、更“高级”的外观。
- **新功能**：增加“难度”和“题目类型”的筛选和生成选项。

## 建议变更

### FilamentAdmin

#### [修改] [QuestionServiceApi.php](file:///Volumes/T9/code/math/apis/FilamentAdmin/app/Services/QuestionServiceApi.php)
- 更新 `listQuestions` 方法，使其能够接收并传递 `type`（题目类型）筛选参数到后端 API。

#### [修改] [QuestionManagement.php](file:///Volumes/T9/code/math/apis/FilamentAdmin/app/Filament/Pages/QuestionManagement.php)
- 添加公共属性 `$selectedType`。
- 为生成模态框添加公共属性 `$generateDifficulty` 和 `$generateType`。
- 更新 `questions()` 和 `meta()` 方法，将 `type` 加入筛选条件。
- 更新 `executeGenerate()` 方法，将 `difficulty` 和 `type` 传递给 `QuestionBankService`。
- 添加 `getQuestionTypeOptions()` 方法，为 UI 提供选项数据。

#### [修改] [question-management.blade.php](file:///Volumes/T9/code/math/apis/FilamentAdmin/resources/views/filament/pages/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 工具）：
    - 验证“生成题目”模态框能否正常打开和关闭。
    - 验证“题目类型”下拉菜单是否显示并可用。

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

## 开发惯例：测试标准
对于每一个新功能或优化：
1.  **单元/功能测试**：必须创建或更新以覆盖业务逻辑。
2.  **UI/页面测试**：验证渲染和响应式表现。
3.  **功能测试**：验证端到端流程（例如：生成 -> 回调 -> 列表更新）。
