# 实现方案 - 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 分钟
