1.9 KiB
1.9 KiB
实现方案 - 2026-04-29-22-49-38
对应需求
- 需求分析文档:
需求分析-2026-04-29-22-49-38.md
方案概述
修复 4 个关联缺陷:WebSocket 连接地址错误、后端缺少 WebSocket 路由、导入按钮无交互、项目状态映射不匹配。
修改文件清单
文件 1: src/lib/websocket.ts(修改)
- 修改类型: 修改 URL
- 修改内容:
ws://localhost:8000/ws/progress→ws://192.168.3.11:8000/ws/progress
文件 2: backend/main.py(修改)
- 修改类型: 新增 WebSocket 路由
- 修改内容: 添加
@app.websocket("/ws/progress")路由,支持:- 客户端连接/断开日志
- 接收前端订阅消息
- 定期推送心跳(可选)
- 通过 Redis 发布/订阅桥接解析进度(预留接口)
文件 3: src/components/ProjectLibrary.tsx(修改)
- 修改类型: 添加文件导入交互
- 修改内容:
- 添加
fileInputRef引用 - 为"导入多媒体资源"按钮添加
onClick触发文件选择器 - 添加隐藏的
<input type="file">,支持accept="video/*,image/*" onChange时调用uploadMediaAPI 上传文件- 上传成功后刷新项目列表
- 添加
文件 4: backend/models.py(修改)
- 修改类型: 修改默认值
- 修改内容:
Project.status默认值从"pending"改为"Ready" - 替代方案: 若数据库已创建,同时修改
schemas.py中返回状态映射
文件 5: src/components/ProjectLibrary.tsx(修改状态显示)
- 修改类型: 扩展状态分支
- 修改内容: 增加对
'pending'状态的显示("待处理")
新增依赖
无
兼容性分析
- WebSocket 为新增路由,不影响现有 HTTP API
- 文件上传复用已有
uploadMediaAPI - 状态默认值修改仅影响新项目
预估工作量
- 代码修改: 10 分钟
- 重启验证: 5 分钟