# 实现方案 - 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` 触发文件选择器 - 添加隐藏的 ``,支持 `accept="video/*,image/*"` - `onChange` 时调用 `uploadMedia` API 上传文件 - 上传成功后刷新项目列表 ### 文件 4: `backend/models.py`(修改) - **修改类型**: 修改默认值 - **修改内容**: `Project.status` 默认值从 `"pending"` 改为 `"Ready"` - **替代方案**: 若数据库已创建,同时修改 `schemas.py` 中返回状态映射 ### 文件 5: `src/components/ProjectLibrary.tsx`(修改状态显示) - **修改类型**: 扩展状态分支 - **修改内容**: 增加对 `'pending'` 状态的显示("待处理") ## 新增依赖 无 ## 兼容性分析 - WebSocket 为新增路由,不影响现有 HTTP API - 文件上传复用已有 `uploadMedia` API - 状态默认值修改仅影响新项目 ## 预估工作量 - 代码修改: 10 分钟 - 重启验证: 5 分钟