tasks.md 2.6 KB

1. 基础设施

  • 1.1 创建 src/types/englishSpeaking.ts,从 enspeak useTopicDiscussionConfig.ts 移植话题讨论相关类型(TopicDiscussionConfig, PracticeSettings, EvaluationSettings, LearningGoals, Role, PracticeMode, ScoreMode 等)
  • 1.2 创建 src/store/speaking.ts Pinia store,管理话题讨论配置状态(对应 demo 的 useTopicDiscussionConfig hook)
  • 1.3 在 i18n 文件(cn.json/en.json/hk.json)中新增英语口语相关翻译 key

2. Layer 1 — 英语学科主页

  • 2.1 创建 SpeakingPanel.vue 三层页面容器,管理 pageMode(layer1/layer2/config)切换和面包屑导航
  • 2.2 创建 CurriculumSelector.vue 教材/年级/单元三级联动下拉框,数据从 curriculum.json 读取
  • 2.3 创建 UnitInfoCard.vue 单元信息展示卡片(标题 + 描述)
  • 2.4 创建 ExerciseTypeGrid.vue 练习类型网格(口语/听力/阅读/写作四个入口,本次只有口语可点击进入 Layer 2)
  • 2.5 创建 Layer1Home.vue 组合以上组件

3. Layer 2 — 口语子页面

  • 3.1 创建 CreationModeSwitch.vue 创建方式切换组件(智能推荐/AI生成/手动创建),参照 demo 实现
  • 3.2 创建 RecommendCard.vue 推荐任务卡片组件(标题、副标题、难度、轮次、时长)
  • 3.3 创建 AIGenerationForm.vue AI 生成表单(仅 UI 壳子,不实现后端功能)
  • 3.4 创建 Layer2Speaking.vue 组合以上组件,实现:任务类型筛选 tabs、推荐卡片列表(数据从 topicDiscussionTasks.json 读取)、点击卡片进入 Layer 3 配置页

4. Layer 3 — 话题讨论配置

  • 4.1 创建 TopicDiscussionConfig.vue 主框架,参照 demo TopicDiscussionConfig.tsx
  • 4.2 实现讨论话题输入 + 学习目标(练习词汇标签增删 + 练习句型列表增删编辑 + 批量粘贴)
  • 4.3 实现练习方式配置(限制时长/限制轮次切换 + 滑块)+ 展示学习报告开关
  • 4.4 实现高级配置(辅助功能 checkbox + 评估维度 checkbox + 评分方式 radio)
  • 4.5 实现底部"应用配置"按钮,调用 parentWindow.addTool(77)

5. 编辑器集成

  • 5.1 将 CollapsibleToolbar/index2.vue 英语 tab submenu 内容替换为 SpeakingPanel 组件
  • 5.2 在 BaseFrameElement.vuegetTypeLabel 中注册 toolType 77

6. 样式与验证

  • 6.1 将 demo Tailwind 样式转换为 SCSS,适配 PPT 项目样式体系
  • 6.2 端到端验证:英语 tab → Layer 1 选单元 → 点口语 → Layer 2 选推荐卡片 → Layer 3 配置 → 应用配置