hookehuyr

docs: 重构更新记录文档结构,迁移详细内容到 CHANGELOG

- 将 README.md 中的详细功能更新记录替换为指向 CHANGELOG.md 的链接
- 重构 CHANGELOG.md,采用更清晰的按日期分组结构,优化可读性
- 将历史更新内容从 README 移至专门的变更日志文件,保持主文档简洁
......@@ -5,179 +5,232 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## [Unreleased]
### Added
#### API Generator Skill (OpenAPI 文档自动生成)
- **新增从 OpenAPI 文档自动生成 API 代码功能**: 支持完整的 OpenAPI 3.0.1 规范
- **新增 API 变更检测**: 自动检测新增、修改、删除的接口,识别破坏性变更
- **新增增量更新机制**: 智能备份和基线管理,避免误报
- **新增 `api:generate` 和 `api:diff` 命令**: 简化 API 生成和变更对比流程
- **新增完整文档模板和示例**: 包含 GET/POST 请求和响应结构示例
- **新增依赖**: `js-yaml@4.1.1`
- 从 OpenAPI 文档自动生成 API 代码功能,支持完整的 OpenAPI 3.0.1 规范
- API 变更检测:自动检测新增、修改、删除的接口,识别破坏性变更
- 增量更新机制:智能备份和基线管理,避免误报
- `api:generate``api:diff` 命令:简化 API 生成和变更对比流程
- 完整文档模板和示例:包含 GET/POST 请求和响应结构示例
- 新增依赖:`js-yaml@4.1.1`
---
## [2026-01-29]
### Added
#### 代码质量工具链
- ESLint + Prettier 代码规范配置
- Husky + lint-staged Git Hooks 自动化检查
- 完整的 E2E 测试认证方案
#### 文档优化
- 将 AI 辅助开发工作流文档从 ideas 移至 done 目录
- 添加 AI 辅助开发工作流优化方案文档
- 重组文档目录结构,分类整理所有文档
---
## [2026-01-28]
### Added
#### 欢迎页功能 (Welcome Page)
- 首次访问欢迎页 (`/welcome`),用户首次打开应用时自动展示
- VideoBackground 组件:全屏视频背景,支持自动播放、循环播放、移动端优化
- WelcomeContent 组件:欢迎页内容区域,采用水平布局展示 3 个功能入口
- WelcomeEntryItem 组件:可复用的功能入口卡片组件
- 功能入口配置化管理 (`welcomeEntries`),支持内部路由和外部链接
- 首次访问检测:基于 localStorage 的标志位和路由守卫(仅访问 /welcome 时触发)
- 调试工具:开发环境下提供 `window.resetWelcomeFlag()``window.showWelcome()`
- 环境变量:`VITE_WELCOME_PAGE_ENABLED`(功能开关)、`VITE_WELCOME_VIDEO_URL`(视频 URL)
#### 资源上传
- 通用七牛云上传工具 `scripts/upload-to-qiniu.sh`,支持单文件和批量上传
- 上传欢迎页背景视频:17.57MB 星空宇宙主题视频
- 上传欢迎页图标:33.53KB 功能入口图标
### Changed
#### 欢迎页布局和样式优化
- **添加标题图片**: 新增"美乐爱觉"标题图片,复用召回页设计资源
- **调整布局方式**: 从环绕式布局改为水平排列,3个功能入口在一行显示
- **优化尺寸**: 图标尺寸调整为 5rem,文字大小调整为 0.95rem
- **改进对称性**: 使用 `justify-content: space-between` 确保左右边距一致
- **优化位置**: 布局更靠底部,padding-bottom 设置为 3rem
- **修复标题位置**: 标题固定在顶部,功能入口通过 `margin-top: auto` 推到底部
- 添加"美乐爱觉"标题图片,复用召回页设计资源
- 调整布局方式:从环绕式布局改为水平排列,3 个功能入口在一行显示
- 优化尺寸:图标尺寸调整为 5rem,文字大小调整为 0.95rem
- 改进对称性:使用 `justify-content: space-between` 确保左右边距一致
- 优化位置:布局更靠底部,padding-bottom 设置为 3rem
#### 欢迎页访问逻辑优化
- **调整首次访问检测逻辑**: 不再自动拦截所有页面跳转到欢迎页
- **优化用户体验**: 访问根目录 `/` 时不会跳转到欢迎页
- **精准拦截**: 只有直接访问 `/welcome` 时才判断是否首次访问
- 如果首次访问:显示欢迎页并标记已访问
- 如果已访问过:直接跳转到首页
- 调整首次访问检测逻辑:不再自动拦截所有页面跳转到欢迎页
- 访问根目录 `/` 时不会跳转到欢迎页
- 只有直接访问 `/welcome` 时才判断是否首次访问
## [2026-01-29]
---
## [2026-01-27]
### Changed
#### TypeScript 类型优化
-`vue` 重新导出 Slot 和 Slots 类型,解决类型导入问题
---
## [2026-01-26]
### Added
#### API Generator Skill (OpenAPI 文档自动生成)
- **新增从 OpenAPI 文档自动生成 API 代码功能**: 支持完整的 OpenAPI 3.0.1 规范
- **新增 API 变更检测**: 自动检测新增、修改、删除的接口,识别破坏性变更
- **新增增量更新机制**: 智能备份和基线管理,避免误报
- **新增 `api:generate` 和 `api:diff` 命令**: 简化 API 生成和变更对比流程
- **新增完整文档模板和示例**: 包含 GET/POST 请求和响应结构示例
- **新增依赖**: `js-yaml@4.1.1`
#### 打卡系统增强
- **打卡草稿缓存功能** (`useCheckinDraft`):防止数据丢失,自动保存和恢复
- **多附件功能**:支持文本、图片、视频、音频混合上传与显示
- **打卡卡片优化** (CheckinCard):
- 长文本折叠功能
- 多附件 Tab 切换
- 移除 `van-tabs``animated``swipeable` 属性
- **草稿恢复时的作业有效性校验**:作业失效时自动清理草稿
- **优化附件预览和编辑回填逻辑**
- **基于 `useCheckin` 的通用提交流程**
## [2026-01-28]
#### 教师端功能
- 老师置顶与取消置顶打卡的 API 接口
### Changed
#### 用户体验优化
- 移除文本输入框的字符限制与字数显示
- 为 CDN 图片添加压缩参数以优化加载性能
- 优化选中日期时切换按钮的显示样式和文本
### Fixed
- 修复多类型附件提交时的错误提示信息
- 修复提交任务时接口兼容性问题
- 修复音频上传格式校验逻辑
- 修复视频封面缺失时的背景显示问题
---
## [2026-01-25]
### Changed
#### Git 配置优化
- 忽略开发工具与文档目录(.claude, .cursor, .specify, .trae, .github, docs)
- 从 .gitignore 中移除 docs 目录
---
## [2026-01-24]
### Added
#### 欢迎页功能 (Welcome Page)
- **新增欢迎页首次访问功能**: 用户首次打开应用时自动展示欢迎页,提供核心功能入口
- **新增 VideoBackground 组件**: 全屏视频背景,支持自动播放、循环播放、移动端优化
- **新增 WelcomeContent 组件**: 欢迎页内容区域,采用不对称布局展示3个功能入口
- **新增 WelcomeEntryItem 组件**: 可复用的功能入口卡片组件
- **新增 welcomeEntries 配置**: 功能入口配置化管理,支持内部路由和外部链接
- **新增首次访问检测**: 基于 localStorage 的首次访问标志位和路由守卫(仅访问 /welcome 时触发)
- **新增调试工具**: 开发环境下提供 `window.resetWelcomeFlag()``window.showWelcome()` 调试函数
- **新增环境变量**:
- `VITE_WELCOME_PAGE_ENABLED`: 控制欢迎页功能开关
- `VITE_WELCOME_VIDEO_URL`: 欢迎页背景视频 URL
#### CDN 图片优化
-`cdn.ipadbiz.cn` 域名的图片自动添加压缩参数
#### 资源上传
- **新增通用七牛云上传工具**: `scripts/upload-to-qiniu.sh`,支持单文件和批量上传
- **上传欢迎页背景视频**: 17.57MB 星空宇宙主题视频 (https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4)
- **上传欢迎页图标**: 33.53KB 功能入口图标 (https://cdn.ipadbiz.cn/mlaj/images/welcome_btn_1.png)
### Changed
#### 架构优化
- 移除独立的媒体打卡页面以简化路由结构
- 移除遗留布局目录 (`/src/layouts`) 并更新相关文档
- 重构组件目录结构,将 UI 组件按功能分类到对应子目录
### Fixed
- 限制视频上传格式并添加 MOV 格式提示
- 修复音频上传格式校验逻辑并移除未使用的 Divider 组件
---
## [2026-01-23]
### Added
#### 打卡系统增强
- **多类型文件混合上传与显示**:同时支持文本、图片、视频、音频
- **打卡滚动恢复功能**:改善用户体验,返回页面时恢复滚动位置
- **清空选中日期功能**:优化日期切换按钮显示
#### 文件上传
- 扩展支持的音频格式列表
### Fixed
- 修复海报生成在 iOS 微信中失败和封面空白问题
- 修复提交评价时为空内容添加提示
- 修复折叠日历组件在隐藏头部时按钮显示异常
- 修复视频封面缺失时的背景显示问题
---
## [2026-01-22]
### Added
#### 课程学习体验优化
- 课程详情页和课程学习页的滚动位置同步功能
- 课程目录滚动位置记忆功能
- 动态文件大小限制功能
### Changed
#### 组件重构
- 重构组件目录结构,将 UI 组件按功能分类到对应子目录
### Fixed
- 修复打卡页面日期选择和加载逻辑问题
- 修复打卡详情页附件类型标签显示问题
- 修复签到小作业 ID 未传递的问题
- 修复课程大纲打卡互动数据初始化问题
- 优化课程详情页空白状态和分隔线显示逻辑
- 完成任务后更新选中项的状态
---
## [2026-01-21]
### Added
#### 附件管理
- 动态文件大小限制功能
- 附件类型显示工具函数
### Fixed
- 修复打卡详情页附件类型标签显示问题
- 修复签到小作业 ID 未传递的问题
- 修复课程大纲打卡互动数据初始化问题
---
## [2026-01-20]
### Changed
#### 路由配置
- **新增欢迎页路由**: `/welcome` 路由,无需登录即可访问
- **优化路由守卫**: 在 `router/index.js` 中添加首次访问检测逻辑
#### 环境配置
- **更新 .env.development**: 添加欢迎页相关环境变量
- **更新 .env.production**: 添加欢迎页相关环境变量
### Features
#### 欢迎页核心特性
- **视频背景**: 循环播放星空宇宙主题视频,自动生成封面图
- **首次访问检测**: 基于 localStorage,仅访问 `/welcome` 时判断是否首次展示
- 首次访问欢迎页:显示欢迎页内容
- 再次访问欢迎页:自动跳转到首页
- **功能入口**: 3个核心功能入口(课程中心、活动中心、个人中心)
- **不对称布局**: 打破完美对称,更自然的视觉效果
- **浮动动画**: 入口图标带有上下浮动动画效果
- **外部链接支持**: 活动中心支持外链跳转到小程序
#### 技术亮点
- **七牛云视频处理**: 自动生成封面图 `?vframe/jpg/offset/0.001`
- **移动端优化**: 视频元素添加 `playsinline``webkit-playsinline``x5-video-player-type` 等属性
- **降级方案**: 视频加载失败时显示静态背景图
- **配置化管理**: 功能入口列表可通过配置文件轻松修改
### Technical Details
#### 文件结构
```
src/
├── components/
│ ├── effects/
│ │ └── VideoBackground.vue # 视频背景组件
│ └── welcome/
│ ├── WelcomeContent.vue # 欢迎页内容组件
│ └── WelcomeEntryItem.vue # 功能入口项组件
├── config/
│ └── welcomeEntries.js # 功能入口配置
├── router/
│ ├── index.js # 路由守卫(首次访问检测)
│ ├── guards.js # 访问标志管理
│ └── routes.js # 路由配置
└── views/
└── welcome/
└── WelcomePage.vue # 欢迎页视图
```
#### 功能入口配置
```javascript
export const welcomeEntries = [
{
id: 'courses',
title: '课程中心',
icon: 'https://cdn.ipadbiz.cn/mlaj/images/welcome_btn_1.png',
route: '/courses',
priority: 1
},
{
id: 'activity',
title: '活动中心',
icon: 'https://cdn.ipadbiz.cn/mlaj/images/welcome_btn_1.png',
route: '/activity',
priority: 2,
isExternal: true,
externalUrl: 'https://wxm.behalo.cc/pages/activity/activity?token=&user_id='
},
{
id: 'profile',
title: '个人中心',
icon: 'https://cdn.ipadbiz.cn/mlaj/images/welcome_btn_1.png',
route: '/profile',
priority: 3
}
]
```
### Development
#### 调试工具
```javascript
// 开发环境全局函数
window.resetWelcomeFlag() // 重置首次访问标志
window.showWelcome() // 直接跳转到欢迎页
// URL 参数方式
?reset_welcome=true // 重置并刷新
```
#### 测试清单
- [x] 首次访问自动跳转到欢迎页
- [x] 非首次访问直接进入首页
- [x] 视频背景正常播放
- [x] 3个功能入口正常跳转
- [x] 活动中心外链正常打开
- [x] 调试工具正常工作
- [x] 移动端视频正常播放
- [x] 布局响应式正常
### Documentation
#### 新增文档
- `docs/plan/26.1.28-欢迎页开发计划/plan.md` - 详细实现计划
- `docs/plan/26.1.28-欢迎页开发计划/brainstorm.md` - 头脑风暴与设计探索
- `docs/plan/26.1.28-欢迎页开发计划/README.md` - 快速开始指南
#### 工具脚本
- `scripts/upload-to-qiniu.sh` - 通用七牛云上传工具
#### 视频播放器重构
- 重构视频播放器逻辑,拆分功能模块
- 移除网络速度显示覆盖层注释代码
### Fixed
- 修复视频播放器条件渲染和清晰度插件问题
- 改进视频播放器重试逻辑并优化错误处理样式
---
## 历史功能更新(2025 及更早)
详细的早期功能更新已迁移到各业务模块文档:
- [打卡与作业系统](./docs/tasks/done/暂存用户打卡信息.md)
- [课程系统](./docs/architecture/ARCHITECTURE.md#2-课程系统-courses)
- [用户与认证](./docs/architecture/ARCHITECTURE.md#1-用户与认证-user--auth)
---
*Last updated: 2026-01-28*
*Last updated: 2026-01-29*
......
......@@ -194,29 +194,7 @@ src/
## 🎉 功能更新记录
### 最新更新 (2026-01)
**欢迎页功能** ✨ (2026-01-28):
- 首次访问欢迎页 (`/welcome`):星空宇宙主题视频背景
- 首次访问检测:localStorage 标志位 + 路由守卫拦截
- 水平布局功能入口:课程、活动、个人中心(带浮动动画)
- 环境变量控制:`VITE_WELCOME_PAGE_ENABLED` 开关
- 详细文档:[docs/tasks/done/26.1.28-欢迎页开发计划/](./docs/tasks/done/26.1.28-欢迎页开发计划/)
**打卡系统增强** 📝 (2026-01):
- 打卡详情页重构 (`/checkin/detail`):统一文本、媒体上传和计数打卡入口
- 新增草稿缓存功能 (`useCheckinDraft`):防止数据丢失,自动保存和恢复
- 打卡卡片优化 (CheckinCard):长文本折叠、多附件 Tab 切换
- 草稿恢复时的作业有效性校验:作业失效时自动清理
- 优化附件预览和编辑回填逻辑
- 实现基于 `useCheckin` 的通用提交流程
- 完整文档:[docs/tasks/done/暂存用户打卡信息.md](./docs/tasks/done/暂存用户打卡信息.md)
**历史功能更新**:
详细记录已迁移到:[/docs/CHANGELOG.md](./docs/CHANGELOG.md)
详细的功能更新历史请查看:[CHANGELOG.md](./CHANGELOG.md)
## /src/components 目录下组件
......