Files
Pre_Seg_Server/工程分析/实现方案-2026-04-29-22-49-38.md

52 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 实现方案 - 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` 时调用 `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 分钟