Files
Pre_Seg_Server/工程分析/实现方案-2026-04-29-23-10-27.md

1.5 KiB
Raw Permalink Blame History

实现方案 - 2026-04-29-23-10-27

对应需求

  • 需求分析文档: 需求分析-2026-04-29-23-10-27.md

方案概述

修复前后端数据结构不匹配、上传后未创建项目、WebSocket 连接状态处理不当三个问题。

修改文件清单

文件 1: src/lib/api.ts(修改 uploadMedia 类型)

  • 修改类型: 修正返回类型以匹配后端
  • 修改内容: { url: string; id: string }{ object_name: string; file_url: string; size: number; message: string }

文件 2: src/components/ProjectLibrary.tsx(修改上传逻辑)

  • 修改类型: 修复字段引用 + 上传后创建项目
  • 修改内容:
    • result.urlresult.file_url
    • 上传成功后调用 createProject 创建新项目(名称=文件名)
    • 然后刷新项目列表

文件 3: src/lib/websocket.ts(修复 disconnect

  • 修改类型: 增加 readyState 判断
  • 修改内容: disconnect() 中:
    • readyState === CONNECTING: 设置 shouldCloseAfterOpen = true,在 onopen 中关闭
    • readyState === OPEN: 正常 close()
    • 其他状态: 直接置 null

文件 4: src/components/Dashboard.tsx(增加清理保护)

  • 修改类型: 延迟 connect / 增加 mounted 标志
  • 修改内容: useEffect 中增加 mounted ref卸载时置 false避免卸载后回调执行

新增依赖

兼容性分析

  • 返回类型修改需确保调用方同步更新
  • WebSocket 修复不影响正常连接流程

预估工作量

  • 10 分钟