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

1.9 KiB
Raw Blame History

实现方案 - 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/progressws://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 分钟