learning_page_plan.md 1.8 KB

学习页面优化计划(简化版)

问题分析

  1. 课程卡片点击无效果 — 缺少课程详情弹窗逻辑
  2. learning.ts import 了已删除的组件,编译报错
  3. 缺少"开始学习"→ 视频页 → 答题页的完整流程

企业级组件拆分原则

组件 策略 原因
learning 页面内容 ✅ 一个组件搞定 单页面内容,无需拆分
课程详情 Sheet ✅ 内嵌到 learning.html 仅此一处使用,无需独立组件
video-player ✅ 已有独立路由页面 全屏页面,独立路由
quiz ✅ 已有独立路由页面 全屏页面,独立路由
quiz-result ✅ 已有独立路由页面 全屏页面,独立路由

核心原则:只有多处复用才抽离为共享组件,单一用途直接内嵌。

实现方案

唯一需要改的文件

文件 操作
features/learning/learning/learning.html 重写:学习路线 + 课程网格 + 全部模块 + 课程详情 Sheet(内嵌)
features/learning/learning/learning.ts 重写:所有逻辑(showCourseDetail、openCourseDetail、closeCourseDetail、startLearning 等)

功能流程

点击课程卡片 → showCourseDetail = true → 显示课程详情 Sheet
  ↓ 点击"开始学习"
closeCourseDetail() → router.navigate(['/video-player'])
  ↓
video-player 页面(已有的独立路由页面)
  ↓ 点击"进入答题"
router.navigate(['/quiz'])

关键实现

  • 课程详情 Sheet 内嵌在 learning.html 底部,用 [class.hidden]="!showCourseDetail()" 控制
  • 使用 signals 管理状态(showCourseDetail、selectedCourseId)
  • 课程数据在 ts 中维护
  • 视频页和答题页使用 Router 导航(已有路由配置)
  • 严格按照 demo 的 HTML 结构和 CSS 类名