kindergarten_java/docs/dev-logs/2026-02-27.md
En 6e11c874d2 chore: 忽略 target 目录和 .class 文件
- 添加 target/ 到 .gitignore
- 从 git 暂存区移除已追踪的 target 目录

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

281 lines
9.8 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.

# 开发日志 - 2026-02-27
## 一、课程包与套餐重构(上午)
### 完成内容
#### Phase 1: 数据库迁移
- 备份数据库 dev.db.backup
- 使用 schema-v2.prisma 执行 prisma db push
- 新增 10 个表themes, course_packages, course_package_courses, tenant_packages, course_lessons, lesson_steps, lesson_step_resources, school_courses, school_course_lessons, school_course_reservations
#### Phase 2: 数据迁移脚本
- 创建 prisma/migrate-v1-to-v2.ts
- 迁移结果:
- 主题6 个
- 课程包6 个
- 课程CourseLesson10 个
- 教学环节17 个
- 套餐3 个(小班、中班、大班各一个)
- 租户套餐授权4 个
#### Phase 3: 后端 API 重构
- 创建 4 个新模块:
- `src/modules/theme/` - 主题字典模块
- `src/modules/course-package/` - 套餐模块(含学校端)
- `src/modules/course-lesson/` - 课程模块(含教师端)
- `src/modules/school-course/` - 校本课程包模块(含学校端和教师端)
- 更新 app.module.ts 注册新模块
- 后端构建验证通过
#### Phase 4: 前端开发
- 创建 API 模块:
- `src/api/package.ts` - 套餐 API
- `src/api/theme.ts` - 主题 API
- `src/api/lesson.ts` - 课程 API
- `src/api/school-course.ts` - 校本课程包 API
- 创建超管端页面:
- `src/views/admin/packages/PackageListView.vue` - 套餐列表
- `src/views/admin/packages/PackageEditView.vue` - 套餐编辑
- `src/views/admin/packages/PackageDetailView.vue` - 套餐详情
- `src/views/admin/themes/ThemeListView.vue` - 主题管理
- 创建学校端页面:
- `src/views/school/school-courses/SchoolCourseListView.vue`
- `src/views/school/school-courses/SchoolCourseEditView.vue`
- `src/views/school/school-courses/SchoolCourseDetailView.vue`
- 创建教师端页面:
- `src/views/teacher/school-courses/SchoolCourseListView.vue`
- `src/views/teacher/school-courses/SchoolCourseEditView.vue`
- `src/views/teacher/school-courses/SchoolCourseDetailView.vue`
- 更新路由配置
---
## 二、课程包创建/编辑6步流程重构下午
### 背景
原有3步流程功能不完整需按照设计文档18-超管端设计-重构版.md重构为6步流程。
### 完成内容
#### 新增组件
| 组件 | 路径 | 说明 |
|------|------|------|
| FileUploader | `src/components/course/FileUploader.vue` | 文件上传组件(支持预览、替换、删除) |
| LessonStepsEditor | `src/components/course/LessonStepsEditor.vue` | 教学环节编辑器含4环节模板 |
| LessonConfigPanel | `src/components/course/LessonConfigPanel.vue` | 统一的课程配置面板 |
| Step1BasicInfo | `src/views/admin/courses/components/Step1BasicInfo.vue` | 步骤1基本信息 |
| Step2CourseIntro | `src/views/admin/courses/components/Step2CourseIntro.vue` | 步骤2课程介绍8个Tab |
| Step3ScheduleRef | `src/views/admin/courses/components/Step3ScheduleRef.vue` | 步骤3排课参考表格 |
| Step4IntroLesson | `src/views/admin/courses/components/Step4IntroLesson.vue` | 步骤4导入课配置 |
| Step5CollectiveLesson | `src/views/admin/courses/components/Step5CollectiveLesson.vue` | 步骤5集体课配置 |
| Step6DomainLessons | `src/views/admin/courses/components/Step6DomainLessons.vue` | 步骤6五大领域课配置 |
#### 重构主页面
- `src/views/admin/courses/CourseEditView.vue` - 从3步改为6步流程
- 添加完成度进度条
- 添加草稿保存功能
#### 后端数据模型更新
- 更新 `prisma/schema.prisma` 添加课程介绍字段:
- introSummary, introHighlights, introGoals, introSchedule
- introKeyPoints, introMethods, introEvaluation, introNotes
- coreContent, scheduleRefData
---
## 三、Bug 修复(下午)
### 用户测试发现的7个问题及修复
| # | 问题描述 | 修复方案 | 修复文件 |
|---|---------|---------|---------|
| 1 | 上传的课程封面没有正确回显 | 优化URL构建逻辑处理已包含`/uploads/`的路径 | `Step1BasicInfo.vue`, `FileUploader.vue` |
| 2 | 富文本输入框500字限制太少 | 增加到1500字添加字数统计 | `Step2CourseIntro.vue`, `LessonConfigPanel.vue` |
| 3 | 导入课不允许关联核心资源 | 启用资源上传视频、PPT、PDF | `Step4IntroLesson.vue` |
| 4 | 导入课缺少教学反思字段 | 启用教学延伸和反思字段 | `Step4IntroLesson.vue` |
| 5 | 教学课件只允许PPT格式 | PPT字段同时支持PPT和PDF | `FileUploader.vue`, `file-upload.service.ts` |
| 6 | 保存课程有概率服务器失败 | 优化错误处理、添加日志、非阻塞保存 | `CourseEditView.vue` |
| 7 | 文件URL路径重复 | 统一处理URL前缀逻辑 | `FileUploader.vue`, `Step1BasicInfo.vue` |
### 额外优化
- 新增 `audio``document` 文件类型支持
- 后端文件服务支持更多MIME类型
- 文本域添加 `show-count` 属性显示字数
---
## 四、文件变更统计
### 后端
- 新增14 个文件(新模块)
- 修改3 个文件
- `app.module.ts` - 注册新模块
- `prisma/schema.prisma` - 添加课程介绍字段
- `file-upload.service.ts` - 扩展文件类型支持
### 前端
- 新增16 个文件(新页面和组件)
- 修改5 个文件
- `router/index.ts` - 添加路由
- `api/course.ts` - 添加新字段类型
- `api/file.ts` - 添加新文件类型
- `CourseEditView.vue` - 重构为6步流程
- `FileUploader.vue` - 扩展文件类型支持
---
## 五、测试验证
### 功能测试结果
| 功能 | 状态 |
|------|------|
| 课程包创建6步流程 | ✅ 通过 |
| 课程包编辑(数据回显) | ✅ 通过 |
| 封面图片上传和显示 | ✅ 通过 |
| 课程介绍8个Tab | ✅ 通过 |
| 导入课资源配置 | ✅ 通过 |
| 集体课资源配置 | ✅ 通过 |
| 领域课启用/配置 | ✅ 通过 |
| 保存草稿 | ✅ 通过 |
| PDF上传到课件字段 | ✅ 通过 |
### 测试账号
| 角色 | 账号 | 密码 |
|------|------|------|
| 超管 | admin | 123456 |
---
## 六、学校端新功能开发(晚上)
### 背景
根据设计文档分析,学校端需要适配新的课程包结构,完善套餐管理和校本课程包功能。
### 完成内容
#### 1. 学校端课程详情页适配(任务#19
**文件**: `src/views/school/courses/CourseDetailView.vue`
重构课程详情页以适配新的6步流程结构
- 信息卡片网格布局(基本信息、使用统计、版本记录)
- 课程介绍8个Tab切换
- 排课计划参考表格
- 课程配置卡片(导入课/集体课/领域课)
- 数字资源汇总(支持文件预览)
- 教师反馈展示
#### 2. 学校端套餐管理重构(任务#20
**文件**:
- `src/api/school.ts` - 添加套餐API
- `src/views/school/PackageView.vue` - 完全重写
功能:
- 已授权套餐列表展示(卡片布局)
- 套餐详情弹窗(显示套餐信息和包含的课程包)
- 续订功能选择6/12/24个月
- 到期状态提醒(即将到期/已过期标签)
- 申请套餐入口
- 统计概览(套餐数、课程包数、即将到期数)
#### 3. 学校端校本课程包功能完善(任务#21
**文件**:
- `src/views/school/school-courses/SchoolCourseListView.vue` - 重写
- `src/views/school/school-courses/SchoolCourseDetailView.vue` - 重写
功能:
- 列表页统计概览(总数/使用次数/待上课预约)
- 预约功能弹窗(选择教师/班级/时间)
- 排课管理弹窗(即将上课/历史记录Tab
- 详情页预约/排课记录展示
- 课程配置卡片展示
- 修改备注高亮显示
---
## 七、Bug修复晚上
### 测试发现的问题及修复
| # | 问题描述 | 修复方案 | 修复文件 |
|---|---------|---------|---------|
| 8 | 学校端课程详情不显示课程配置 | 更新 findCourse 方法包含 courseLessons 关联 | `school.service.ts` |
| 9 | 超管端排课参考表格列名不匹配 | 列定义从 time/areaActivity 改为 dayOfWeek/activity | `CourseDetailView.vue` (超管端) |
| 10 | 学校端排课参考表格不显示 | 添加数组类型判断,避免 JSON.parse 失败 | `CourseDetailView.vue` (学校端) |
---
## 八、文件变更统计(晚上)
### 后端
- 修改1 个文件
- `src/modules/school/school.service.ts` - findCourse 方法添加 courseLessons 关联
### 前端
- 新增1 个文件
- `src/views/school/PackageView.vue` - 套餐管理页面(完全重写)
- 修改4 个文件
- `src/api/school.ts` - 添加套餐API
- `src/views/school/courses/CourseDetailView.vue` - 重构课程详情页
- `src/views/school/school-courses/SchoolCourseListView.vue` - 重构校本课程包列表
- `src/views/school/school-courses/SchoolCourseDetailView.vue` - 重构校本课程包详情
---
## 九、测试验证(晚上)
### 学校端新功能测试结果
| 功能 | 状态 |
|------|------|
| 套餐管理列表 | ✅ 通过 |
| 套餐详情弹窗 | ✅ 通过 |
| 续订功能 | ✅ 通过 |
| 到期状态提醒 | ✅ 通过 |
| 课程详情页-基本信息 | ✅ 通过 |
| 课程详情页-课程介绍 | ✅ 通过 |
| 课程详情页-课程配置 | ✅ 通过 |
| 课程详情页-排课参考 | ✅ 通过 |
| 校本课程包列表 | ✅ 通过 |
| 预约功能 | ✅ 通过 |
### 测试账号
| 角色 | 账号 | 密码 |
|------|------|------|
| 超管 | admin | 123456 |
| 学校 | school | 123456 |
---
## 十、启动服务
```bash
cd /Users/retirado/ccProgram
./start-all.sh
```
- 后端 API: http://localhost:3000
- 前端页面: http://localhost:5173
---
## 十一、今日总结
### 完成任务
1. 课程包与套餐重构数据迁移、后端API、前端页面
2. 课程包创建/编辑6步流程重构
3. 7个Bug修复
4. 学校端课程详情页适配
5. 学校端套餐管理重构
6. 学校端校本课程包功能完善
7. 3个Bug修复晚上测试发现
### 明日待办
1. 继续学校端功能测试
2. 教师端功能适配
3. 性能优化
4. TypeScript 编译警告修复
---
*最后更新: 2026-02-27 23:00*