612 lines
33 KiB
Markdown
612 lines
33 KiB
Markdown
# 少儿友好授课界面设计方案
|
||
|
||
> 版本: v1.0
|
||
> 设计日期: 2026-02-22
|
||
> 设计目标: 为幼儿园小朋友提供沉浸式、互动性强的授课展示界面
|
||
|
||
---
|
||
|
||
## 一、背景与问题
|
||
|
||
### 1.1 当前问题
|
||
|
||
现有 `LessonView.vue` 授课界面存在以下问题:
|
||
- ❌ 教师讲稿直接展示,不适合给小朋友看
|
||
- ❌ 界面复杂,左侧导航+中间内容+右侧工具栏
|
||
- ❌ 资源展示不直观,需要点击小标签才能查看
|
||
- ❌ 没有针对大屏/投屏场景优化
|
||
|
||
### 1.2 目标场景
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ 教室场景 │
|
||
│ │
|
||
│ ┌──────────┐ ┌──────────────────┐ │
|
||
│ │ │ │ │ │
|
||
│ │ 教师 │ ──── 操作控制 ────► │ 电子白板/投影 │ │
|
||
│ │ │ │ │ │
|
||
│ │ 教师控制台│ │ 投屏展示界面 │ │
|
||
│ │(iPad/PC) │ ◄──── 状态同步 ──── │ (KidsView) │ │
|
||
│ │ │ │ │ │
|
||
│ └──────────┘ └──────────────────┘ │
|
||
│ ▲ │
|
||
│ │ │
|
||
│ ┌────┴────┐ │
|
||
│ │ 小朋友 │ │
|
||
│ │ 观看 │ │
|
||
│ └─────────┘ │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 1.3 设计原则
|
||
|
||
根据儿童UI设计最佳实践:
|
||
|
||
| 原则 | 规范 | 说明 |
|
||
|------|------|------|
|
||
| **简洁性** | 隐藏所有控制元素 | 全屏沉浸式展示 |
|
||
| **大按钮** | ≥60x60px | 方便教师触摸操作 |
|
||
| **鲜艳色彩** | 主题色 #FF8C42 | 温暖、活泼的橙色系 |
|
||
| **即时反馈** | ≤300ms | 动画过渡流畅 |
|
||
| **进度可视** | 环节进度条 | 让小朋友知道进度 |
|
||
|
||
---
|
||
|
||
## 二、整体架构
|
||
|
||
### 2.1 双模式架构
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ LessonView.vue │
|
||
│ (授课总控制器) │
|
||
├─────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────┐ ┌─────────────────────┐ │
|
||
│ │ TeacherMode │ │ KidsMode │ │
|
||
│ │ (教师控制台) │ │ (投屏展示) │ │
|
||
│ ├─────────────────────┤ ├─────────────────────┤ │
|
||
│ │ • 教师讲稿 │ │ • 绘本大图 │ │
|
||
│ │ • 互动要点 │ │ • 视频/动画 │ │
|
||
│ │ • 计时器 │ │ • 音频播放 │ │
|
||
│ │ • 课堂评价 │ │ • 互动游戏 │ │
|
||
│ │ • 笔记记录 │ │ • 环节进度 │ │
|
||
│ │ • 资源预览 │ │ • 延伸活动 │ │
|
||
│ └─────────────────────┘ └─────────────────────┘ │
|
||
│ │ │ │
|
||
│ └───────────┬───────────────┘ │
|
||
│ │ │
|
||
│ 共享状态管理 │
|
||
│ (currentStep, currentPage) │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 2.2 实现方式选择
|
||
|
||
| 方案 | 描述 | 推荐度 |
|
||
|------|------|--------|
|
||
| **A. 同页面模式切换** | 在 LessonView 中添加模式切换按钮 | ⭐⭐⭐⭐⭐ 推荐 |
|
||
| B. 新标签页 | window.open() 打开独立页面 | ⭐⭐⭐ |
|
||
| C. 路由切换 | /teacher/lessons/:id/kids | ⭐⭐ |
|
||
|
||
**推荐方案 A 的理由:**
|
||
- 状态共享最简单(同一个 Vue 组件)
|
||
- 切换流畅无延迟
|
||
- 便于实现双屏同步显示
|
||
|
||
---
|
||
|
||
## 三、界面设计详细方案
|
||
|
||
### 3.1 KidsMode 布局
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────────┐
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ 主内容展示区 │ │
|
||
│ │ (绘本/视频/游戏/动画) │ │
|
||
│ │ │ │
|
||
│ │ 占据 80% 屏幕 │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │ │
|
||
│ │ │ 1 │ │ 2 │ │ 3 │ │ 4 │ │ 5 │ │ 延伸 │ │ │
|
||
│ │ │导入 │ │共读 │ │互动 │ │游戏 │ │总结 │ │ 活动 │ │ │
|
||
│ │ │ 🎯 │ │ 📖 │ │ 🎨 │ │ 🎮 │ │ ⭐ │ │ 🎁 │ │ │
|
||
│ │ └──┯──┘ └──┯──┘ └──┯──┘ └──┯──┘ └──┯──┘ └──┯──┘ │ │
|
||
│ │ └──────┴──────┴──────┴──────┴──────┴──────┘ │ │
|
||
│ │ 进度条 │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ 底部导航区 (15%) │
|
||
└────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 3.2 各资源类型展示组件
|
||
|
||
#### 3.2.1 绘本展示 (EbookViewer)
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────────┐
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ ┌──────────────┐ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ 绘本页面 │ │ │
|
||
│ │ │ (大图) │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ └──────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ◀━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▶ │
|
||
│ 翻页控制 │
|
||
│ 第 3 页 / 共 12 页 自动播放 ▶ │
|
||
└────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**功能特性:**
|
||
- 大图全屏展示
|
||
- 点击左侧翻上一页,右侧翻下一页
|
||
- 可选自动翻页(可设置间隔)
|
||
- 页码显示
|
||
- 双指缩放(触屏设备)
|
||
|
||
#### 3.2.2 视频播放 (VideoPlayer)
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────────┐
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ 视频全屏播放 │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ ▶ ━━━━━━━━━━━━━━━━━━━━━━━━━●━━━━━━━━━━━━━━━━━━━━ 🔊 │ │
|
||
│ │ 播放控制条 │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
└────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**功能特性:**
|
||
- 全屏播放
|
||
- 简化控制条(播放/暂停、进度、音量)
|
||
- 自动隐藏控制条(3秒无操作)
|
||
- 循环播放选项
|
||
|
||
#### 3.2.3 音频播放 (AudioPlayer)
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────────┐
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ ┌──────────────┐ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ 动画背景 │ │ │
|
||
│ │ │ (波浪/气泡) │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ 🎵 音乐 │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ └──────────────┘ │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌────────────────────────────────────────────┐ │
|
||
│ │ ♪ ━━━━━━━━━━━━━━━━━━━━●━━━━━━━━━━━━ 🔊 │ │
|
||
│ │ 正在播放: 绘本配乐 │ │
|
||
│ └────────────────────────────────────────────┘ │
|
||
└────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**功能特性:**
|
||
- 搭配动态背景动画(波浪、气泡、星星等)
|
||
- 简洁的播放控制
|
||
- 可搭配绘本图片轮播
|
||
|
||
#### 3.2.4 互动游戏 (GameViewer)
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────────┐
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ ┌──────────────────────┐ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ 游戏嵌入区域 │ │ │
|
||
│ │ │ (iframe/组件) │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ 支持触摸交互 │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ └──────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ 退出游戏 │
|
||
└────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**游戏类型支持:**
|
||
- H5 游戏(iframe 嵌入)
|
||
- 拖拽配对游戏
|
||
- 点击选择游戏
|
||
- 涂色游戏
|
||
- 拼图游戏
|
||
|
||
#### 3.2.5 PPT/挂图展示 (SlidesViewer)
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────────┐
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ ┌──────────────┐ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ PPT 幻灯片 │ │ │
|
||
│ │ │ (PDF渲染) │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ └──────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ◀━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▶ │
|
||
│ 第 1 页 / 共 8 页 全屏 ⛶ │
|
||
└────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 3.3 底部导航栏设计
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────────┐
|
||
│ 环节导航 + 延伸活动 │
|
||
├────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||
│ │ ╭───╮ │ │ ╭───╮ │ │ ╭───╮ │ │ ╭───╮ │ │
|
||
│ │ │ 🎯 │ │ │ │ 📖 │ │ │ │ 🎨 │ │ │ │ ⭐ │ │ │
|
||
│ │ ╰───╯ │ │ ╰───╯ │ │ ╰───╯ │ │ ╰───╯ │ │
|
||
│ │ 导入 │ │ 共读 │ │ 互动 │ │ 总结 │ │
|
||
│ │ 3分钟 │ │ 8分钟 │ │ 5分钟 │ │ 4分钟 │ │
|
||
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
|
||
│ │ │ │ │ │
|
||
│ ┌────┴──────────┴──────────┴──────────┴────┐ │
|
||
│ │██████████████████░░░░░░░░░░░░░░░░░░░░░░░░│ │
|
||
│ └───────────────────────────────────────────┘ │
|
||
│ 整体进度 (40%) │
|
||
│ │
|
||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||
│ │ ╭───╮ │ │ ╭───╮ │ │ ╭───╮ │ │
|
||
│ │ │ 🎁 │ │ │ │ 🎨 │ │ │ │ 🏃 │ │ │
|
||
│ │ ╰───╯ │ │ ╰───╯ │ │ ╰───╯ │ │
|
||
│ │ 手工活动 │ │ 绘画活动 │ │ 户外活动 │ │
|
||
│ └─────────┘ └─────────┘ └─────────┘ │
|
||
│ 延伸活动 │
|
||
└────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**设计要点:**
|
||
- 当前环节高亮(放大+边框)
|
||
- 已完成环节显示 ✓
|
||
- 图标+名称+时长
|
||
- 进度条实时更新
|
||
- 延伸活动单独一行
|
||
|
||
### 3.4 环节内容自动适配
|
||
|
||
根据环节类型自动选择展示组件:
|
||
|
||
| 环节类型 | stepType | 主要展示内容 | 默认组件 |
|
||
|---------|----------|-------------|---------|
|
||
| 导入环节 | INTRO | 视频/动画/图片 | VideoPlayer |
|
||
| 师幼共读 | READING | 绘本+音频 | EbookViewer + AudioPlayer |
|
||
| 互动环节 | INTERACTION | 游戏/问答 | GameViewer |
|
||
| 延伸活动 | EXTENSION | 视频/指导 | VideoPlayer + 活动卡片 |
|
||
| 总结环节 | SUMMARY | 图片/PPT | SlidesViewer |
|
||
|
||
---
|
||
|
||
## 四、技术实现方案
|
||
|
||
### 4.1 组件结构
|
||
|
||
```
|
||
src/views/teacher/lessons/
|
||
├── LessonView.vue # 授课主页面(模式切换控制器)
|
||
├── components/
|
||
│ ├── TeacherMode.vue # 教师控制台(现有界面优化)
|
||
│ ├── KidsMode.vue # 投屏展示模式(新增)
|
||
│ │ ├── KidsHeader.vue # 顶部标题栏(可选显示)
|
||
│ │ ├── KidsContent.vue # 主内容区
|
||
│ │ └── KidsNav.vue # 底部导航
|
||
│ ├── viewers/
|
||
│ │ ├── EbookViewer.vue # 绘本查看器
|
||
│ │ ├── VideoPlayer.vue # 视频播放器
|
||
│ │ ├── AudioPlayer.vue # 音频播放器
|
||
│ │ ├── GameViewer.vue # 游戏查看器
|
||
│ │ └── SlidesViewer.vue # PPT/挂图查看器
|
||
│ └── shared/
|
||
│ ├── ProgressBar.vue # 进度条
|
||
│ └── StepIndicator.vue # 环节指示器
|
||
```
|
||
|
||
### 4.2 状态管理
|
||
|
||
```typescript
|
||
// useLessonState.ts - 共享状态
|
||
interface LessonState {
|
||
// 模式
|
||
mode: 'teacher' | 'kids';
|
||
|
||
// 课程信息
|
||
courseId: number;
|
||
course: Course;
|
||
|
||
// 进度
|
||
currentStepIndex: number; // 当前环节
|
||
currentPageIndex: number; // 当前页码(绘本)
|
||
currentResourceIndex: number; // 当前资源索引
|
||
|
||
// 播放状态
|
||
isPlaying: boolean;
|
||
isAutoPlay: boolean;
|
||
autoPlayInterval: number; // 自动翻页间隔(秒)
|
||
|
||
// 计时
|
||
timerSeconds: number;
|
||
timerRunning: boolean;
|
||
}
|
||
```
|
||
|
||
### 4.3 模式切换实现
|
||
|
||
```vue
|
||
<!-- LessonView.vue -->
|
||
<template>
|
||
<div class="lesson-view" :class="{ 'kids-mode': mode === 'kids' }">
|
||
<!-- 模式切换按钮 -->
|
||
<div class="mode-switch" v-if="mode === 'teacher'">
|
||
<a-button type="primary" size="large" @click="switchToKidsMode">
|
||
<template #icon><ExpandOutlined /></template>
|
||
投屏模式
|
||
</a-button>
|
||
</div>
|
||
|
||
<!-- 退出投屏按钮(悬浮) -->
|
||
<div class="kids-exit-btn" v-if="mode === 'kids'" @click="switchToTeacherMode">
|
||
<CloseOutlined />
|
||
</div>
|
||
|
||
<!-- 教师模式 -->
|
||
<TeacherMode v-if="mode === 'teacher'" v-bind="sharedProps" />
|
||
|
||
<!-- 投屏模式 -->
|
||
<KidsMode v-else v-bind="sharedProps" />
|
||
</div>
|
||
</template>
|
||
```
|
||
|
||
### 4.4 数据流
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ API Layer │
|
||
│ getLessonDetail(courseId) │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ LessonView.vue │
|
||
│ 数据加载与状态 │
|
||
│ │
|
||
│ course: { │
|
||
│ scripts: CourseScript[], // 教学环节 │
|
||
│ resources: CourseResource[], // 课程资源 │
|
||
│ activities: CourseActivity[], // 延伸活动 │
|
||
│ ebookPaths: string, // 绘本路径 JSON │
|
||
│ audioPaths: string, // 音频路径 JSON │
|
||
│ videoPaths: string, // 视频路径 JSON │
|
||
│ } │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
┌───────────────┴───────────────┐
|
||
▼ ▼
|
||
┌─────────────────────────┐ ┌─────────────────────────┐
|
||
│ TeacherMode │ │ KidsMode │
|
||
│ (教师控制台) │ │ (投屏展示) │
|
||
│ │ │ │
|
||
│ • 读取 teacherScript │ │ • 读取 resourceIds │
|
||
│ • 显示互动要点 │ │ • 展示资源内容 │
|
||
│ • 计时/评价/记录 │ │ • 播放/翻页控制 │
|
||
└─────────────────────────┘ └─────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 五、交互设计
|
||
|
||
### 5.1 手势/触摸操作
|
||
|
||
| 操作 | 绘本模式 | 视频模式 | 游戏模式 |
|
||
|------|---------|---------|---------|
|
||
| 点击左侧 | 上一页 | 后退10秒 | - |
|
||
| 点击右侧 | 下一页 | 前进10秒 | - |
|
||
| 双击 | 全屏 | 全屏 | - |
|
||
| 双指缩放 | 放大/缩小 | - | - |
|
||
| 左右滑动 | 翻页 | 进度调整 | - |
|
||
|
||
### 5.2 键盘快捷键
|
||
|
||
| 按键 | 功能 |
|
||
|------|------|
|
||
| `←` / `A` | 上一步/上一页 |
|
||
| `→` / `D` | 下一步/下一页 |
|
||
| `Space` | 播放/暂停 |
|
||
| `F` | 全屏切换 |
|
||
| `Esc` | 退出投屏模式 |
|
||
| `M` | 静音切换 |
|
||
|
||
### 5.3 自动化功能
|
||
|
||
| 功能 | 说明 |
|
||
|------|------|
|
||
| **自动翻页** | 绘本模式下可设置间隔自动翻页(默认5秒) |
|
||
| **环节计时提醒** | 超过预计时长时顶部提醒 |
|
||
| **进度自动保存** | 每30秒自动保存当前进度 |
|
||
| **全屏自动进入** | 进入KidsMode自动请求全屏 |
|
||
|
||
---
|
||
|
||
## 六、视觉设计规范
|
||
|
||
### 6.1 配色方案
|
||
|
||
```css
|
||
/* 主题色 - 温暖橙色系 */
|
||
--kids-primary: #FF8C42; /* 主色 */
|
||
--kids-primary-light: #FFB380; /* 主色浅 */
|
||
--kids-primary-dark: #E67635; /* 主色深 */
|
||
|
||
/* 背景色 */
|
||
--kids-bg: #FFF9F5; /* 温暖白 */
|
||
--kids-bg-card: #FFFFFF; /* 卡片白 */
|
||
|
||
/* 辅助色 */
|
||
--kids-success: #52C41A; /* 成功绿 */
|
||
--kids-info: #1890FF; /* 信息蓝 */
|
||
--kids-warning: #FAAD14; /* 警告黄 */
|
||
|
||
/* 文字色 */
|
||
--kids-text: #333333; /* 主文字 */
|
||
--kids-text-secondary: #666666;/* 次要文字 */
|
||
```
|
||
|
||
### 6.2 字体规范
|
||
|
||
```css
|
||
/* 主字体 */
|
||
font-family: 'Comic Sans MS', 'YouYuan', 'Microsoft YaHei', sans-serif;
|
||
|
||
/* 字号 */
|
||
--kids-font-title: 36px; /* 大标题 */
|
||
--kids-font-subtitle: 28px; /* 副标题 */
|
||
--kids-font-body: 24px; /* 正文 */
|
||
--kids-font-small: 18px; /* 小字 */
|
||
|
||
/* 圆角 */
|
||
--kids-radius-sm: 12px;
|
||
--kids-radius-md: 20px;
|
||
--kids-radius-lg: 28px;
|
||
```
|
||
|
||
### 6.3 动画效果
|
||
|
||
```css
|
||
/* 页面切换 */
|
||
.page-enter-active {
|
||
transition: all 0.3s ease-out;
|
||
}
|
||
.page-leave-active {
|
||
transition: all 0.2s ease-in;
|
||
}
|
||
|
||
/* 环节切换 */
|
||
.step-change {
|
||
animation: stepSlide 0.5s ease;
|
||
}
|
||
|
||
@keyframes stepSlide {
|
||
0% { transform: translateX(100%); opacity: 0; }
|
||
100% { transform: translateX(0); opacity: 1; }
|
||
}
|
||
|
||
/* 完成动画 */
|
||
@keyframes celebrate {
|
||
0% { transform: scale(1); }
|
||
50% { transform: scale(1.1); }
|
||
100% { transform: scale(1); }
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 七、实施计划
|
||
|
||
### 7.1 开发阶段
|
||
|
||
| 阶段 | 内容 | 预计工时 |
|
||
|------|------|---------|
|
||
| **Phase 1** | 基础架构 + 模式切换 | 4h |
|
||
| **Phase 2** | 绘本查看器 + 翻页控制 | 4h |
|
||
| **Phase 3** | 视频/音频播放器 | 3h |
|
||
| **Phase 4** | 底部导航 + 进度条 | 3h |
|
||
| **Phase 5** | 互动游戏支持 | 3h |
|
||
| **Phase 6** | 延伸活动展示 | 2h |
|
||
| **Phase 7** | 优化测试 | 3h |
|
||
| **总计** | | **22h** |
|
||
|
||
### 7.2 文件清单
|
||
|
||
| 文件 | 说明 | 优先级 |
|
||
|------|------|--------|
|
||
| `KidsMode.vue` | 投屏模式主组件 | P0 |
|
||
| `KidsContent.vue` | 主内容区 | P0 |
|
||
| `KidsNav.vue` | 底部导航 | P0 |
|
||
| `EbookViewer.vue` | 绘本查看器 | P0 |
|
||
| `VideoPlayer.vue` | 视频播放器 | P0 |
|
||
| `AudioPlayer.vue` | 音频播放器 | P1 |
|
||
| `GameViewer.vue` | 游戏查看器 | P1 |
|
||
| `SlidesViewer.vue` | PPT查看器 | P1 |
|
||
| `useLessonState.ts` | 状态管理 | P0 |
|
||
|
||
---
|
||
|
||
## 八、设计决策(已确认)
|
||
|
||
| 问题 | 决策 | 说明 |
|
||
|------|------|------|
|
||
| **互动游戏** | 暂不开发,后续补充 | 记录在待办事项中 |
|
||
| **资源关联** | 使用课程包配置 | 环节与资源已在创建时关联 |
|
||
| **绘本音频同步** | 可选同步模式 | 提供开关,用户可选择 |
|
||
| **延伸活动展示** | 底部独立入口 | 作为独立区域,不融入主流程 |
|
||
| **双屏需求** | 先做单屏切换 | 后续可扩展双屏模式 |
|
||
|
||
---
|
||
|
||
## 九、待办事项
|
||
|
||
### 后续功能(P2)
|
||
|
||
| 功能 | 描述 | 预计工时 |
|
||
|------|------|---------|
|
||
| **互动游戏模块** | 支持拖拽配对、点击选择、涂色、拼图等游戏类型 | 16h |
|
||
| **双屏投影模式** | 教师控制台 + 投屏端同步显示 | 8h |
|
||
| **音频页面同步** | 绘本阅读时音频与页面自动同步 | 4h |
|
||
|
||
---
|
||
|
||
*设计完成于 2026-02-22*
|
||
*文档版本: v1.1*
|
||
*最后更新: 2026-02-22*
|