## 后端重构 ### 新增基础设施 - src/common/dto/ - 统一响应格式和分页查询DTO基类 - src/common/interceptors/ - 响应转换拦截器 - src/common/utils/ - JSON解析和分页计算工具函数 ### DTO规范化 - Course、Lesson、TeacherCourse、SchoolCourse、Tenant控制器添加Swagger装饰器 - 添加@ApiQuery、@ApiBody、@ApiOperation完善API文档 - 修复CourseLesson控制器路径参数问题 ## 前端重构 ### Orval API客户端生成 - 添加orval配置和生成脚本 - 生成完整的类型安全API客户端 (src/api/generated/) - 导入56个参数类型文件 ### API模块迁移 - src/api/course.ts - 迁移使用Orval生成API - src/api/school-course.ts - 修复类型错误(number vs string) - src/api/teacher.ts - 完整迁移教师端API - src/api/client.ts - 重构API客户端统一入口 - src/api/lesson.ts - 修复未使用参数 ### 文件路由配置 - 配置unplugin-vue-router插件 - 创建动态路由配置支持自动路由和传统路由切换 - 添加路由守卫保留原有权限逻辑 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
69 lines
2.0 KiB
JSON
69 lines
2.0 KiB
JSON
{
|
|
"name": "reading-platform-backend",
|
|
"version": "1.0.0",
|
|
"description": "幼儿阅读教学服务平台后端",
|
|
"main": "dist/src/main.js",
|
|
"scripts": {
|
|
"prestart:dev": "npx tsc",
|
|
"start:dev": "node dist/src/main.js",
|
|
"build": "npx tsc",
|
|
"start": "node dist/src/main.js",
|
|
"start:prod": "node dist/src/main.js",
|
|
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
"prisma:generate": "prisma generate",
|
|
"prisma:migrate": "prisma migrate dev",
|
|
"prisma:studio": "prisma studio",
|
|
"seed": "ts-node prisma/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"@nestjs/common": "^10.3.0",
|
|
"@nestjs/config": "^3.1.1",
|
|
"@nestjs/core": "^10.3.0",
|
|
"@nestjs/jwt": "^10.2.0",
|
|
"@nestjs/passport": "^10.0.3",
|
|
"@nestjs/platform-express": "^10.4.22",
|
|
"@nestjs/schedule": "^6.1.1",
|
|
"@nestjs/swagger": "^11.2.6",
|
|
"@nestjs/throttler": "^5.2.0",
|
|
"@prisma/client": "^5.22.0",
|
|
"@types/multer": "^2.0.0",
|
|
"ali-oss": "^6.18.1",
|
|
"bcrypt": "^5.1.1",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.14.0",
|
|
"compression": "^1.8.1",
|
|
"dayjs": "^1.11.10",
|
|
"exceljs": "^4.4.0",
|
|
"passport": "^0.7.0",
|
|
"passport-jwt": "^4.0.1",
|
|
"passport-local": "^1.0.0",
|
|
"reflect-metadata": "^0.1.14",
|
|
"rxjs": "^7.8.1",
|
|
"xlsx": "^0.18.5"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/cli": "^10.3.0",
|
|
"@nestjs/schematics": "^10.1.0",
|
|
"@nestjs/testing": "^10.3.0",
|
|
"@playwright/test": "^1.58.2",
|
|
"@types/bcrypt": "^5.0.2",
|
|
"@types/express": "^4.17.21",
|
|
"@types/jest": "^29.5.11",
|
|
"@types/node": "^20.10.6",
|
|
"@types/passport-jwt": "^4.0.0",
|
|
"@types/passport-local": "^1.0.38",
|
|
"@typescript-eslint/eslint-plugin": "^6.18.0",
|
|
"@typescript-eslint/parser": "^6.18.0",
|
|
"eslint": "^8.56.0",
|
|
"jest": "^29.7.0",
|
|
"prisma": "^5.8.0",
|
|
"source-map-support": "^0.5.21",
|
|
"ts-jest": "^29.1.1",
|
|
"ts-loader": "^9.5.1",
|
|
"ts-node": "^10.9.2",
|
|
"ts-node-dev": "^2.0.0",
|
|
"tsconfig-paths": "^4.2.0",
|
|
"typescript": "^5.6.3"
|
|
}
|
|
}
|