This commit is contained in:
@@ -180,9 +180,82 @@ pip install Pillow qrcode
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 五、错误提示优化(下午更新)
|
||||||
|
|
||||||
|
### 课程名重复错误优化
|
||||||
|
**问题**:创建课程时名称重复返回 409 错误,前端提示不明确
|
||||||
|
|
||||||
|
**修复内容**:
|
||||||
|
1. **后端** `course_service.py`:课程名重复时返回 `existing_id` 和 `existing_name`
|
||||||
|
2. **前端** `edit-course.vue`:检测 409 错误后弹出确认框
|
||||||
|
- "查看已有课程" → 跳转到已存在的课程
|
||||||
|
- "修改名称" → 留在当前页面
|
||||||
|
|
||||||
|
### 通用错误处理增强
|
||||||
|
- `errorHandler.ts` 新增 409 冲突错误处理
|
||||||
|
- 新增工具函数:`isConflictError()`, `getConflictDetail()`, `getConflictMessage()`
|
||||||
|
|
||||||
|
### 其他页面错误提示优化
|
||||||
|
- `position-management.vue`:岗位创建/编辑错误提取详细信息
|
||||||
|
- `user-management.vue`:用户编辑错误提取详细信息
|
||||||
|
|
||||||
|
### 文件变更
|
||||||
|
- `backend/app/services/course_service.py` (修改)
|
||||||
|
- `frontend/src/utils/errorHandler.ts` (修改)
|
||||||
|
- `frontend/src/views/manager/edit-course.vue` (修改)
|
||||||
|
- `frontend/src/views/admin/position-management.vue` (修改)
|
||||||
|
- `frontend/src/views/admin/user-management.vue` (修改)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、部署问题修复(下午更新)
|
||||||
|
|
||||||
|
### 后端导入路径修复
|
||||||
|
1. `certificate.py` 模型:`from app.core.database import Base` → `from app.models.base import Base`
|
||||||
|
2. `certificate.py` API:`from app.core.database import get_db` → `from app.core.deps import get_db`
|
||||||
|
3. `dashboard.py` API:同上
|
||||||
|
4. 合并 `get_current_user` 导入到 `app.core.deps`
|
||||||
|
|
||||||
|
### 依赖安装
|
||||||
|
```bash
|
||||||
|
docker exec kpl-backend-dev pip install Pillow qrcode
|
||||||
|
```
|
||||||
|
|
||||||
|
### 前端构建同步问题
|
||||||
|
- 问题:构建输出到 `/root/aiedu/frontend/dist/`,但容器挂载的是 `/root/aiedu/dist-test/`
|
||||||
|
- 解决:构建后需手动同步 `cp -r /root/aiedu/frontend/dist/* /root/aiedu/dist-test/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 七、钉钉免密登录问题修复(下午更新)
|
||||||
|
|
||||||
|
### 问题现象
|
||||||
|
- 钉钉环境打开应用后显示"没有访问此页面的权限"
|
||||||
|
- 后端日志显示登录实际成功
|
||||||
|
|
||||||
|
### 问题原因
|
||||||
|
登录成功后读取 URL 中的 `redirect` 参数跳转,但该参数指向用户无权限的页面(如 /admin/*)
|
||||||
|
|
||||||
|
### 修复内容
|
||||||
|
`login/index.vue`:登录成功后检查 redirect 目标是否有权限
|
||||||
|
```javascript
|
||||||
|
// 检查 redirect 目标是否有权限访问
|
||||||
|
if ((redirect.startsWith('/admin') && userRole !== 'admin') ||
|
||||||
|
(redirect.startsWith('/manager') && !['admin', 'manager'].includes(userRole))) {
|
||||||
|
redirect = defaultRoute // 改为跳转到默认页面
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 调试工具
|
||||||
|
- 钉钉环境自动启用 vConsole(`main.ts` 中根据 UA 判断)
|
||||||
|
- 依赖:`npm install vconsole`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 待办事项
|
## 待办事项
|
||||||
|
|
||||||
- [ ] 证书 PDF 生成(需安装 weasyprint)
|
- [ ] 证书 PDF 生成(需安装 weasyprint)
|
||||||
- [ ] 课程完成进度追踪(user_course_progress 表)
|
- [ ] 课程完成进度追踪(user_course_progress 表)
|
||||||
- [ ] 数据大屏数据缓存优化
|
- [ ] 数据大屏数据缓存优化
|
||||||
- [ ] 钉钉环境下底部导航适配
|
- [ ] 钉钉环境下底部导航适配
|
||||||
|
- [ ] 移除 vConsole 调试代码(问题确认解决后)
|
||||||
|
|||||||
Reference in New Issue
Block a user