kindergarten_java/docs/design/reading-task-prd.md
Claude Opus 4.6 f62aa18e72 feat: 阅读任务模块重写(Phase 1-4)
## 主要变更

### 后端改造 (Phase 1)
- 新增 task_feedback 表存储教师评价
- task 表添加 related_book_name 字段
- task_completion 表添加 video_url, audio_url 字段
- 新增 TaskFeedback 实体和服务层
- 扩展 TaskService 支持完成情况查询和评价功能
- 学校端 API 改为只读模式 (/v1/school/reading-tasks)

### 教师端前端 (Phase 2)
- 创建任务弹窗添加关联绘本字段
- 完成情况弹窗支持新状态值 (PENDING/SUBMITTED/REVIEWED)
- 新增评价弹窗组件(评价结果、评分、评语)
- 显示提交内容预览(照片、视频、音频、文字)

### 家长端前端 (Phase 3)
- 提交功能改造支持照片上传(最多9张)
- 支持视频/音频链接输入
- 阅读心得文字输入
- 新增查看教师评价功能
- 状态驱动操作(待提交/已提交/已评价)

### 学校端前端 (Phase 4)
- 完全重写为只读模式
- 移除创建/编辑/删除功能
- 多维度筛选(关键字、类型、状态、日期、排序)
- 统计卡片(任务数、进行中、已提交、已评价)
- 任务详情弹窗
- 完成情况列表弹窗
- 提交详情弹窗

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 14:08:36 +08:00

656 lines
34 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 阅读任务模块 PRD产品需求文档
> 版本v1.1
> 日期2026-03-20
> 状态:讨论稿
---
## 一、背景与目标
### 1.1 业务背景
幼儿园教师在完成绘本课后,需要给学生布置家庭阅读任务,建议孩子回家自主阅读相关绘本。目前缺乏一个系统化的工具来:
- 管理阅读任务的发布和追踪
- 让家长反馈孩子的完成情况
- 让教师对学生完成情况进行评价
- 让学校管理层了解全校阅读任务执行情况
### 1.2 产品目标
| 目标 | 指标 |
|------|------|
| 简化任务发布流程 | 教师发布任务时间 < 2分钟 |
| 提升家长参与度 | 任务完成率 > 80% |
| 增强家校互动 | 教师反馈率 > 90% |
| 数据可追溯 | 学校可查看所有历史记录 |
### 1.3 本期范围
| 包含 | 不包含(后续迭代) |
|------|-------------------|
| ✅ 教师端任务管理 | ❌ 家长端绘本阅读功能 |
| ✅ 家长端任务查看/提交 | ❌ 绘本付费订阅 |
| ✅ 教师端反馈评价 | ❌ 学生端独立 App |
| ✅ 学校端数据查看 | ❌ 绘本库/自动推荐 |
| ✅ 关联绘本(手动填写) | ❌ |
---
## 二、竞品分析
### 2.1 Seesaw核心参考
**定位**K-12 学生的数字学习档案平台
| 功能模块 | 说明 | 可借鉴点 |
|---------|------|---------|
| **作品提交** | 学生/家长上传照片、视频、绘画、语音 | 多种提交形式 |
| **教师反馈** | 文字、语音、手写批注 | 多维度反馈方式 |
| **数字档案** | 自动归档学生作品形成成长记录 | 生成成长档案 |
| **家校消息** | 单向公告 + 双向消息 | 灵活的沟通模式 |
| **进度报告** | 可生成并分享给家长 | 数据可视化 |
### 2.2 ClassDojo
**定位**:课堂行为管理 + 家校沟通
| 功能模块 | 说明 | 可借鉴点 |
|---------|------|---------|
| **积分系统** | 行为激励,学生获得积分/徽章 | 游戏化激励 |
| **班级故事** | 教师分享班级动态 | 内容分享 |
| **电子档案** | 家长帮助孩子上传作业 | 亲子协作 |
| **多语言支持** | 130+ 语言自动翻译 | 降低使用门槛 |
### 2.3 关键洞察
1. **提交形式多样化** - 不仅限于文字,支持照片/视频/语音
2. **反馈即时性** - 教师反馈能及时触达家长
3. **成长可追溯** - 形成学生阅读成长档案
4. **操作简便性** - 家长端必须极简,避免使用门槛
---
## 三、用户角色与场景
### 3.1 角色定义
| 角色 | 职责 | 使用端 |
|------|------|--------|
| **教师** | 创建任务、查看提交、评价反馈 | 教师端Web |
| **家长** | 接收任务、提交完成、查看反馈 | 家长端H5/小程序) |
| **学校管理员** | 查看全校数据、统计分析 | 学校端Web |
| **学生** | 实际完成任务的对象 | 通过家长端操作 |
### 3.2 核心场景
```
场景一:课后布置阅读任务
┌─────────────────────────────────────────────────────────┐
│ 教师 → 完成绘本课 → 创建阅读任务 → 填写关联绘本名称 │
│ → 设置截止日期 → 指定班级/学生 → 发布 │
└─────────────────────────────────────────────────────────┘
场景二:家长提交完成情况
┌─────────────────────────────────────────────────────────┐
│ 家长 → 收到任务通知 → 陪伴孩子阅读 → 拍照/录视频 │
│ → 上传完成证明 → 填写简单心得 → 提交 │
└─────────────────────────────────────────────────────────┘
场景三:教师评价反馈
┌─────────────────────────────────────────────────────────┐
│ 教师 → 查看待审核列表 → 查看提交内容 → 评分/写评语 │
│ → 发送反馈 → 家长收到通知 → 查看教师评价 │
└─────────────────────────────────────────────────────────┘
场景四:学校查看数据
┌─────────────────────────────────────────────────────────┐
│ 学校 → 多维度筛选 → 查看任务列表 → 查看完成情况 │
│ → 查看教师反馈 → 导出报表 │
└─────────────────────────────────────────────────────────┘
```
---
## 四、功能需求
### 4.1 教师端Web
#### 4.1.1 任务管理
| 功能 | 描述 | 优先级 |
|------|------|--------|
| **创建任务** | 填写标题、描述、关联绘本名称、截止日期 | P0 |
| **选择目标** | 按班级或按学生分配任务 | P0 |
| **任务模板** | 使用模板快速创建,支持保存为模板 | P1 |
| **编辑/删除** | 修改任务内容或撤回(未截止前) | P0 |
| **任务列表** | 按状态(进行中/已截止/草稿)筛选查看 | P0 |
#### 4.1.2 完成情况管理
| 功能 | 描述 | 优先级 |
|------|------|--------|
| **提交列表** | 按任务查看所有学生提交情况 | P0 |
| **状态筛选** | 按待审核/已通过/需改进筛选 | P0 |
| **查看详情** | 查看照片/视频/文字内容 | P0 |
| **快捷评价** | 一键标记"优秀"/"通过"/"需改进" | P0 |
| **详细评语** | 输入文字评价 | P1 |
| **评分打星** | 1-5 星评分(可选) | P2 |
| **批量操作** | 批量标记通过 | P1 |
#### 4.1.3 提醒通知
| 功能 | 描述 | 优先级 |
|------|------|--------|
| **一键提醒** | 向未完成家长发送提醒 | P0 |
| **自动提醒** | 截止前 1 天自动提醒 | P1 |
---
### 4.2 家长端H5/小程序)
> **现状分析**:已有基础框架,需完善以下功能
#### 4.2.1 任务查看
| 功能 | 描述 | 优先级 | 现状 |
|------|------|--------|------|
| **任务列表** | 显示孩子收到的所有阅读任务 | P0 | ✅ 已有基础 |
| **任务详情** | 标题、描述、关联绘本、截止日期 | P0 | ✅ 已有基础 |
| **状态显示** | 待完成/已提交/已评价 | P0 | ✅ 已有基础 |
| **倒计时** | 显示剩余时间,过期标红 | P1 | ❌ 需新增 |
#### 4.2.2 完成提交(重点完善)
| 功能 | 描述 | 优先级 | 现状 |
|------|------|--------|------|
| **拍照上传** | 拍摄孩子阅读照片(最多 9 张) | P0 | ❌ 需新增 |
| **视频上传** | 录制孩子阅读视频(限 60 秒) | P0 | ❌ 需新增 |
| **语音上传** | 录制孩子朗读语音(限 60 秒) | P1 | ❌ 需新增 |
| **文字心得** | 填写阅读心得(可选) | P1 | ⚠️ 需完善 |
| **重新提交** | 截止前可修改提交内容 | P0 | ❌ 需新增 |
#### 4.2.3 反馈查看
| 功能 | 描述 | 优先级 | 现状 |
|------|------|--------|------|
| **评价通知** | 收到教师评价的推送通知 | P0 | ❌ 需新增 |
| **评价详情** | 查看评分、评语 | P0 | ❌ 需新增 |
| **历史记录** | 查看所有任务的完成和评价记录 | P1 | ⚠️ 需完善 |
#### 4.2.4 消息通知
| 功能 | 描述 | 优先级 | 现状 |
|------|------|--------|------|
| **新任务通知** | 推送新任务提醒 | P0 | ❌ 需新增 |
| **截止提醒** | 推送截止前提醒 | P0 | ❌ 需新增 |
| **评价通知** | 推送教师评价提醒 | P0 | ❌ 需新增 |
---
### 4.3 学校端Web- 重点设计
> **核心原则**:学校端 **不创建任务**,仅查看数据和统计分析
> **核心挑战**:数据量大(多班级 × 多教师 × 每日任务),需高效筛选
#### 4.3.1 筛选系统设计(参考最佳实践)
基于竞品分析和教育管理系统的最佳实践,设计 **多维度组合筛选** 系统:
```
┌─────────────────────────────────────────────────────────────────┐
│ 🔍 筛选条件 │
├─────────────────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 时间范围 │ │
│ │ [本周 ▼] [2026年3月 ▼] 或 [03-01] ~ [03-20] 自定义 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ 班级 │ │ 教师 │ │ 任务类型 │ │
│ │ [全部 ▼] │ │ [全部 ▼] │ │ [全部 ▼] │ │
│ └────────────┘ └────────────┘ └────────────┘ │
│ │
│ ┌────────────┐ ┌────────────┐ ┌─────────────────────────┐ │
│ │ 任务状态 │ │ 完成状态 │ │ 搜索任务标题... │ │
│ │ [全部 ▼] │ │ [全部 ▼] │ │ 🔍 │ │
│ └────────────┘ └────────────┘ └─────────────────────────┘ │
│ │
│ [重置筛选] [已选: 5 个条件] │
└─────────────────────────────────────────────────────────────────┘
```
##### 筛选维度详解
| 维度 | 选项 | 说明 |
|------|------|------|
| **时间范围** | 今日/本周/本月/本学期/自定义 | 快捷选择 + 日期选择器 |
| **班级** | 全部/大一班/大二班/... | 支持多选 |
| **教师** | 全部/李老师/王老师/... | 支持多选 |
| **任务类型** | 全部/阅读/活动/作业 | 单选 |
| **任务状态** | 全部/进行中/已截止/已归档 | 单选 |
| **完成状态** | 全部/高完成率(>80%)/中完成率(50-80%)/低完成率(<50%) | 单选 |
| **搜索** | 任务标题关键字 | 模糊搜索 |
##### 筛选交互设计
1. **实时筛选**选择条件后立即刷新结果无需点击搜索按钮
2. **已选标签**在筛选区下方显示已选条件的标签可点击移除
3. **条件持久化**筛选条件保存在 URL 参数中刷新页面不丢失
4. **智能默认**默认显示"本周"任务避免数据量过大
#### 4.3.2 任务总览
```
┌─────────────────────────────────────────────────────────────────┐
│ 📊 阅读任务总览 2026年3月 第3周 │
├─────────────────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 12 │ │ 85% │ │ 92% │ │ 156 │ │
│ │ 发布任务 │ │ 平均完成率│ │ 教师反馈率│ │ 提交总数 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ 📈 趋势图(按天/按班级) │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ ▓▓▓ │ │
│ │ ▓▓▓▓▓ ▓▓▓ │ │
│ │ ▓▓▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓ ▓▓▓ │ │
│ │ ───────┬───────┬───────┬───────┬─────── │ │
│ │ 周一 周二 周三 周四 周五 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
#### 4.3.3 任务列表(表格视图)
| 列名 | 说明 | 排序 |
|------|------|------|
| 任务标题 | 点击可查看详情 | |
| 发布教师 | 教师姓名 | |
| 班级 | 目标班级 | |
| 类型 | 阅读/活动/作业 | - |
| 目标人数 | 学生总数 | - |
| 提交数 | 已提交/总人数 | |
| 完成率 | 进度条显示 | |
| 反馈率 | 教师已评价比例 | |
| 发布时间 | yyyy-MM-dd | |
| 截止时间 | yyyy-MM-dd | |
| 状态 | 进行中/已截止 | - |
| 操作 | 查看详情 | - |
#### 4.3.4 任务详情(只读)
```
┌─────────────────────────────────────────────────────────────────┐
│ 《好饿的毛毛虫》阅读任务 [返回列表] │
├─────────────────────────────────────────────────────────────────┤
│ 基本信息 │
│ 发布教师: 李老师 班级: 大一班 类型: 阅读 │
│ 发布时间: 2026-03-18 截止时间: 2026-03-20 │
│ 关联绘本: 《好饿的毛毛虫》 │
│ 任务描述: 和孩子一起阅读这本经典绘本,完成后拍照上传... │
├─────────────────────────────────────────────────────────────────┤
│ 完成情况 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 目标: 25人 已提交: 20人 完成率: 80% │ │
│ │ ████████████████░░░░ 80% │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 学生列表 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 学生 │ 班级 │ 提交时间 │ 状态 │ 教师评价 │ │
│ ├──────────────────────────────────────────────────────────┤ │
│ │ 张小明 │ 大一班│ 03-19 18:30│ ✅优秀 │ 很棒!阅读认真... │ │
│ │ 李小红 │ 大一班│ 03-19 19:20│ ✅通过 │ 继续加油! │ │
│ │ 王小刚 │ 大一班│ 03-20 09:15│ ⏳待审 │ - │ │
│ │ 赵小丽 │ 大一班│ - │ ⭕未提交│ - │ │
│ │ ... │ ... │ ... │ ... │ ... │ │
│ └──────────────────────────────────────────────────────────┘ │
│ [导出明细] │
└─────────────────────────────────────────────────────────────────┘
```
#### 4.3.5 学生提交详情(只读)
学校端可查看具体学生的提交内容
```
┌─────────────────────────────────────────────────────────────────┐
│ 张小明的提交 [返回] [导出] │
├─────────────────────────────────────────────────────────────────┤
│ 任务: 《好饿的毛毛虫》阅读任务 │
│ 提交时间: 2026-03-19 18:30 │
├─────────────────────────────────────────────────────────────────┤
│ 📷 照片 │
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 📸 │ │ 📸 │ │ 📸 │ 点击查看大图 │
│ └─────┘ └─────┘ └─────┘ │
│ │
│ 📝 阅读心得 │
│ "孩子很喜欢这本书,读了好几遍,还给我讲了毛毛虫变蝴蝶的故事..." │
├─────────────────────────────────────────────────────────────────┤
│ 教师评价 │
│ 评价结果: ⭐⭐⭐⭐⭐ 优秀 │
│ 评价内容: "很棒!阅读很认真,能复述故事内容,继续保持!" │
│ 评价时间: 2026-03-19 20:15 │
└─────────────────────────────────────────────────────────────────┘
```
#### 4.3.6 统计报表
| 报表类型 | 内容 | 导出格式 |
|---------|------|---------|
| **任务统计** | 按时间/班级/教师的任务发布和完成情况 | Excel |
| **班级对比** | 各班级完成率反馈率对比 | Excel + 图表 |
| **教师排行** | 发布数反馈率平均评分 | Excel |
| **学生明细** | 指定条件下的学生完成明细 | Excel |
---
## 五、数据模型设计
### 5.1 实体关系图
```
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Teacher │────>│ Task │<────│ Student │
└──────────────┘ └──────────────┘ └──────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ TaskTarget │ │TaskCompletion│
└──────────────┘ └──────────────┘
┌──────────────┐
│TaskFeedback │
└──────────────┘
```
### 5.2 表结构设计
#### Task任务表- 新增字段
| 字段 | 类型 | 说明 | 变更 |
|------|------|------|------|
| id | BIGINT | 主键 | - |
| tenant_id | BIGINT | 租户ID学校 | - |
| title | VARCHAR(100) | 任务标题 | - |
| description | TEXT | 任务描述 | - |
| task_type | VARCHAR(20) | 类型READING/ACTIVITY/HOMEWORK | - |
| **related_book_name** | VARCHAR(200) | 关联绘本名称 | **新增** |
| course_id | BIGINT | 关联课程ID可选 | - |
| course_lesson_id | BIGINT | 关联课程环节ID可选 | - |
| creator_id | BIGINT | 创建人ID教师 | - |
| start_date | DATE | 开始日期 | - |
| due_date | DATE | 截止日期 | - |
| status | VARCHAR(20) | 状态DRAFT/PUBLISHED/ARCHIVED | - |
| created_at | DATETIME | 创建时间 | - |
| updated_at | DATETIME | 更新时间 | - |
#### TaskTarget任务目标表- 无变更
| 字段 | 类型 | 说明 |
|------|------|------|
| id | BIGINT | 主键 |
| task_id | BIGINT | 任务ID |
| target_type | VARCHAR(20) | 目标类型CLASS/STUDENT |
| target_id | BIGINT | 目标ID班级ID或学生ID |
#### TaskCompletion任务完成表- 扩展字段
| 字段 | 类型 | 说明 | 变更 |
|------|------|------|------|
| id | BIGINT | 主键 | - |
| task_id | BIGINT | 任务ID | - |
| student_id | BIGINT | 学生ID | - |
| status | VARCHAR(20) | 状态PENDING/SUBMITTED/REVIEWED | - |
| **photos** | JSON | 照片URL数组 | **扩展** |
| **video_url** | VARCHAR(500) | 视频URL | **新增** |
| **audio_url** | VARCHAR(500) | 语音URL | **新增** |
| content | TEXT | 文字心得 | - |
| submitted_at | DATETIME | 提交时间 | - |
| reviewed_at | DATETIME | 审核时间 | - |
| created_at | DATETIME | 创建时间 | - |
| updated_at | DATETIME | 更新时间 | - |
#### TaskFeedback任务反馈表- 新增
| 字段 | 类型 | 说明 |
|------|------|------|
| id | BIGINT | 主键 |
| completion_id | BIGINT | 完成记录ID |
| teacher_id | BIGINT | 教师ID |
| rating | INT | 评分 1-5可选 |
| result | VARCHAR(20) | 结果EXCELLENT/PASSED/NEEDS_WORK |
| comment | TEXT | 评语 |
| created_at | DATETIME | 创建时间 |
---
## 六、API 接口设计
### 6.1 教师端 API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/v1/teacher/tasks` | 任务列表支持筛选 |
| POST | `/api/v1/teacher/tasks` | 创建任务 |
| GET | `/api/v1/teacher/tasks/{id}` | 任务详情 |
| PUT | `/api/v1/teacher/tasks/{id}` | 更新任务 |
| DELETE | `/api/v1/teacher/tasks/{id}` | 删除任务 |
| GET | `/api/v1/teacher/tasks/{id}/completions` | 完成情况列表 |
| POST | `/api/v1/teacher/completions/{id}/feedback` | 提交评价 |
| POST | `/api/v1/teacher/tasks/{id}/remind` | 发送提醒 |
### 6.2 家长端 API完善
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/v1/parent/tasks` | 孩子的任务列表 |
| GET | `/api/v1/parent/tasks/{id}` | 任务详情 |
| POST | `/api/v1/parent/tasks/{id}/submit` | 提交完成含上传 |
| PUT | `/api/v1/parent/tasks/{id}/submit` | 修改提交 |
| GET | `/api/v1/parent/tasks/{id}/feedback` | 查看教师评价 |
### 6.3 学校端 API新增/完善)
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/v1/school/tasks` | 全校任务列表支持多维度筛选 |
| GET | `/api/v1/school/tasks/{id}` | 任务详情 |
| GET | `/api/v1/school/tasks/{id}/completions` | 完成情况列表 |
| GET | `/api/v1/school/completions/{id}` | 学生提交详情 |
| GET | `/api/v1/school/tasks/statistics` | 统计数据 |
| GET | `/api/v1/school/tasks/statistics/trend` | 趋势数据 |
| GET | `/api/v1/school/tasks/export` | 导出报表 |
#### 学校端筛选参数
```typescript
// GET /api/v1/school/tasks
interface SchoolTaskQuery {
// 分页
pageNum?: number;
pageSize?: number;
// 时间筛选
dateType?: 'today' | 'week' | 'month' | 'semester' | 'custom';
startDate?: string; // 自定义开始日期
endDate?: string; // 自定义结束日期
// 组织筛选
classIds?: number[]; // 班级ID数组
teacherIds?: number[]; // 教师ID数组
// 状态筛选
taskType?: 'READING' | 'ACTIVITY' | 'HOMEWORK';
taskStatus?: 'PUBLISHED' | 'ARCHIVED';
completionRate?: 'high' | 'medium' | 'low'; // >80% / 50-80% / <50%
// 搜索
keyword?: string;
// 排序
sortBy?: 'createTime' | 'completionRate' | 'feedbackRate';
sortOrder?: 'asc' | 'desc';
}
```
---
## 七、UI 设计要点
### 7.1 学校端筛选区交互规范
#### 快捷时间选择器
```
┌─────────────────────────────────────────────────────┐
│ [今日] [本周 ✓] [本月] [本学期] [自定义] │
└─────────────────────────────────────────────────────┘
```
#### 已选条件标签
```
┌─────────────────────────────────────────────────────┐
│ 已选条件: │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 本周 ✕ │ │ 大一班 ✕ │ │ 李老师 ✕ │ │
│ └──────────┘ └──────────┘ └──────────┘ [清空全部] │
└─────────────────────────────────────────────────────┘
```
#### 班级/教师多选下拉
```
┌─────────────────────────────────────────────────────┐
│ 班级 ▼ │
│ ┌───────────────────────────────────────────────┐ │
│ │ ☑ 全选 │ │
│ │ ☑ 大一班 │ │
│ │ ☑ 大二班 │ │
│ │ ☐ 中一班 │ │
│ │ ☐ 中二班 │ │
│ │ │ │
│ │ [确定] [取消] │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
```
### 7.2 家长端提交页面
```
┌───────────────────────────────────────┐
│ 《好饿的毛毛虫》阅读任务 │
│ 截止时间: 明天 18:00 │
├───────────────────────────────────────┤
│ 📷 上传阅读照片 │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌───┐ │
│ │ 📸 │ │ 📸 │ │ 📸 │ │ + │ │
│ └─────┘ └─────┘ └─────┘ └───┘ │
│ 最多上传 9 张照片 │
├───────────────────────────────────────┤
│ 🎬 上传阅读视频(选填) │
│ ┌───────────────────────────────┐ │
│ │ 📹 │ │
│ │ 点击上传视频 │ │
│ │ 限 60 秒以内 │ │
│ └───────────────────────────────┘ │
├───────────────────────────────────────┤
│ 📝 阅读心得(选填) │
│ ┌───────────────────────────────┐ │
│ │ 孩子很喜欢这本书... │ │
│ │ │ │
│ └───────────────────────────────┘ │
│ 0/500 │
├───────────────────────────────────────┤
│ │
│ [ 提交完成 ] │
│ │
└───────────────────────────────────────┘
```
---
## 八、开发计划
### Phase 1核心功能2周
| 模块 | 功能 | 优先级 |
|------|------|--------|
| **后端** | Task 表新增 related_book_name 字段 | P0 |
| | TaskCompletion 表扩展 photos/video_url/audio_url | P0 |
| | 新增 TaskFeedback | P0 |
| | 完善教师端 API评价提醒 | P0 |
| | 完善家长端 API提交查看评价 | P0 |
| | 新增学校端 API多维度筛选 | P0 |
| **前端-教师端** | 完善任务创建添加绘本名称字段 | P0 |
| | 完善完成情况管理评价功能 | P0 |
| **前端-家长端** | 新增任务提交页面照片/视频上传 | P0 |
| | 新增评价查看功能 | P0 |
| **前端-学校端** | 新增多维度筛选组件 | P0 |
| | 新增任务列表只读 | P0 |
| | 新增任务详情和学生提交详情 | P0 |
### Phase 2完善功能1周
| 模块 | 功能 | 优先级 |
|------|------|--------|
| **前端-教师端** | 任务模板功能 | P1 |
| | 批量评价 | P1 |
| **前端-家长端** | 视频录制和上传 | P1 |
| | 语音录制和上传 | P1 |
| | 历史记录完善 | P1 |
| **前端-学校端** | 统计图表 | P1 |
| | 导出报表 | P1 |
### Phase 3通知系统1周
| 模块 | 功能 | 优先级 |
|------|------|--------|
| **通知** | 新任务通知推送至家长端 | P0 |
| | 截止提醒推送至家长端 | P0 |
| | 评价通知推送至家长端 | P0 |
| | 自动提醒截止前1天 | P1 |
---
## 九、现有代码改造点
### 9.1 家长端后端
**文件**: `ParentTaskController.java`
**现状**: `getMyTasks` 方法返回空数据TODO
**改造**:
1. 实现根据家长ID获取关联学生的任务
2. 新增 `POST /api/v1/parent/tasks/{id}/submit` 接口处理提交
3. 新增 `GET /api/v1/parent/tasks/{id}/feedback` 接口获取评价
### 9.2 家长端前端
**文件**: `TaskListView.vue`
**现状**: 有基础框架仅支持文字反馈
**改造**:
1. 新增提交页面组件支持照片/视频上传
2. 新增评价查看组件
3. 完善任务状态显示和倒计时
---
## 十、风险与依赖
| 风险 | 影响 | 缓解措施 |
|------|------|---------|
| 文件上传量增加 | OSS 存储成本 | 限制单个任务上传数量和大小 |
| 推送通知依赖 | 消息触达率 | 确保家长端已集成推送 SDK |
| 数据量增长 | 查询性能 | 添加索引学校端分页查询 |
---
*文档版本历史:*
- v1.0 (2026-03-20): 初稿
- v1.1 (2026-03-20): 完善学校端筛选设计家长端功能开发计划