主要变更: 1. 新增学校报告服务 (SchoolReportService) - 学校概览统计 (getOverviewStats) - 教师统计报表 (getTeacherStats) - 课程统计报表 (getCourseStats) - 学生统计报表 (getStudentStats) - 课时趋势分析 (getLessonTrend) 2. 新增学校端 Controller - SchoolReportController: 学校统计报告接口 - SchoolResourceController: 学校资源管理接口 - SchoolFeedbackController: 学校反馈管理接口 3. 完善实体类字段 - CourseLesson: 添加 lessonOrder 字段 - ResourceItem: 添加 tenantId、type 字段 - Task: 添加 name 字段 - LessonFeedback: 添加 courseId、tenantId、overallRating 字段 4. 完善服务层实现 - ResourceServiceImpl: 实现资源库和资源项管理方法 - SchoolReportServiceImpl: 实现学校统计报表逻辑 - TeacherDashboardServiceImpl: 修复时间类型转换 - AdminStatsServiceImpl: 完善统计逻辑 5. 新增 Flyway 迁移脚本 (V2) - 添加 ORM 实体类缺失字段的数据库迁移 6. 修复路由冲突 - 移除 AdminCourseController 中重复的 getCourseLessons 方法 7. 添加测试工具类 - CheckDatabase, CheckClazzTable: 数据库检查工具 - InitDatabase, InitClasses: 数据初始化工具 - GeneratePasswordHash: 密码哈希生成工具 8. 配置 Maven Wrapper - 添加 maven-wrapper.properties 和 mvnw.cmd - 确保使用 Java 17 编译 |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .env.development | ||
| .env.production | ||
| .gitignore | ||
| api-spec.yml | ||
| dev.db | ||
| Dockerfile | ||
| index.html | ||
| nginx.conf | ||
| orval.config.ts | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| start-frontend.sh | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
少儿智慧阅读平台 - 前端
Vue 3 + TypeScript + Vite + Ant Design Vue
重要提醒(必读)
🚨 接口变更后必须执行的步骤
当后端修改了 API 接口后,必须执行以下步骤:
# 1. 拉取最新代码
git pull
# 2. 更新 API 规范并重新生成类型代码
npm run api:update
# 3. 检查生成的文件
git status
# 应该看到 api-spec.yml 和 src/api/generated/ 下的文件有变化
# 4. 提交所有改动
git add api-spec.yml src/api/generated/
git commit -m "chore(api): 同步最新接口规范"
git push
⚠️ 如果跳过这一步会发生什么?
- TypeScript 编译报错(类型不匹配)
- 代码中会出现红色波浪线
- CI 检查无法通过
🔍 如何确认接口是否有变更?
# 查看最近提交
git log --oneline -10
# 查看 api-spec.yml 是否有未提交的改动
git diff api-spec.yml
# 查看生成的文件是否与远程一致
git status src/api/generated/
本地开发
环境要求
- Node.js 18+
- npm 9+
安装依赖
npm install
启动开发服务器
npm run dev
构建生产版本
npm run build
API 相关命令
| 命令 | 说明 |
|---|---|
npm run dev |
启动开发服务器 |
npm run build |
构建生产版本 |
npm run api:fetch |
从后端拉取最新 API 规范 (api-spec.json) |
npm run api:gen |
根据规范生成 TypeScript 代码 |
npm run api:update |
拉取 + 生成(后端改接口后必须执行) |
项目结构
reading-platform-frontend/
├── src/
│ ├── views/ # 页面组件
│ │ ├── admin/ # 超管功能
│ │ ├── school/ # 学校管理
│ │ ├── teacher/ # 教师功能
│ │ └── parent/ # 家长功能
│ ├── api/
│ │ ├── generated/ # ⚠️ 自动生成,不要手动修改
│ │ └── index.ts # axios 实例
│ └── stores/ # Pinia 状态管理
├── api-spec.yml # ⚠️ OpenAPI 规范(后端更新后提交)
└── orval.config.ts # API 代码生成配置
注意事项
- 不要手动修改
src/api/generated/下的文件 - 不要提交 修改后的
api-spec.yml但不提交generated/ - 每次开始工作前先执行
git pull && npm run api:update - 提交代码前使用
git status检查是否有多余/遗漏的文件
常见问题
Q:运行 npm run api:update 报错?
- 确认后端正在运行:http://8.148.151.56:3002
- 或者直接
git pull使用已提交的规范,运行npm run api:gen
Q:TypeScript 报错类型不匹配?
- 说明后端接口有变化
- 执行
npm run api:update重新生成类型
Q:想查看某个接口的详细参数?
- 打开
src/api/generated/api.ts查看 - 或访问 http://8.148.151.56:3002/doc.html