2.2 KiB
2.2 KiB
开发日志 - 2026年2月13日
今日工作概要
完成课程包编辑页面数据持久化修复,UI优化,以及提交审核验证逻辑修复。
详细工作内容
1. 数据持久化问题修复 (重要)
问题描述: 课程编辑页面的课堂计划、延伸活动、测评工具三个步骤的数据无法正确保存,刷新页面后数据丢失。
根本原因:
- 前端
saveDraft函数没有将这些复杂数据序列化后存储到数据库 - 后端数据库 schema 缺少对应的 JSON 存储字段
解决方案:
| 模块 | 数据库字段 | 存储内容 |
|---|---|---|
| 课堂计划 | lessonPlanData |
phases[] + scriptPages[] |
| 延伸活动 | activitiesData |
activities[] |
| 测评工具 | assessmentData |
assessment object |
代码变更:
prisma/schema.prisma- 添加三个新字段:
lessonPlanData String? @map("lesson_plan_data")
activitiesData String? @map("activities_data")
assessmentData String? @map("assessment_data")
2. 逐页脚本自动展开功能
需求: 如果脚本页中有内容(教师话术、预期回答、注意事项任一填写),则该页默认展开。
3. 延伸活动 UI 重新设计
优化内容:
- 采用卡片式布局替代列表式
- 活动编号使用蓝色圆形徽章
- 活动类型使用彩色标签区分
- 双列布局显示类型和时长
- 删除按钮改为图标样式
4. "保存课程"按钮状态修复
问题: 点击"保存课程"后课程状态变成"已发布"
原因: saveCourse 函数硬编码 status: 'PUBLISHED'
解决: 改为 status: 'DRAFT',发布应通过审核流程
5. 提交审核验证逻辑修复
问题: 已配置教学环节但仍提示"请至少配置一个教学环节"
原因: 验证逻辑检查 scripts 字段,但数据存储在 lessonPlanData.phases
解决: 更新 course-validation.service.ts
6. 其他修复
- 其他素材不回显问题修复 - 修复字段名
otherPaths→otherResources - 文件大小限制调整 - 从 50MB 更新到 300MB
- 电子绘本格式支持 - 添加 ppt/pptx 格式支持
- 认证守卫配置 - 课程包控制器添加 JWT 认证守卫和角色守卫