kindergarten_java/docs/dev-logs/2026-02-13.md
2026-02-28 16:41:39 +08:00

2.2 KiB
Raw Permalink Blame History

开发日志 - 2026年2月13日

今日工作概要

完成课程包编辑页面数据持久化修复UI优化以及提交审核验证逻辑修复。

详细工作内容

1. 数据持久化问题修复 (重要)

问题描述: 课程编辑页面的课堂计划、延伸活动、测评工具三个步骤的数据无法正确保存,刷新页面后数据丢失。

根本原因:

  • 前端 saveDraft 函数没有将这些复杂数据序列化后存储到数据库
  • 后端数据库 schema 缺少对应的 JSON 存储字段

解决方案:

模块 数据库字段 存储内容
课堂计划 lessonPlanData phases[] + scriptPages[]
延伸活动 activitiesData activities[]
测评工具 assessmentData assessment object

代码变更:

  1. 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. 其他修复

  • 其他素材不回显问题修复 - 修复字段名 otherPathsotherResources
  • 文件大小限制调整 - 从 50MB 更新到 300MB
  • 电子绘本格式支持 - 添加 ppt/pptx 格式支持
  • 认证守卫配置 - 课程包控制器添加 JWT 认证守卫和角色守卫