stage-requirements-upload-fix.md 5.7 KB

空间需求管理上传问题修复总结

📋 问题描述

  1. 需要删除"生成客服标注"按钮
  2. 上传照片数量与实际显示照片数量不一致
  3. 是否只支持上传5张照片,其他文件不能上传?

🔍 问题诊断

问题1: 生成客服标注按钮 ✅

状态: 已删除
位置: stage-requirements.component.html 第505-512行
修改: 删除该按钮,只保留"生成客户报告"按钮


问题2: 照片数量与显示数量不一致 ❌

根本原因

CAD文件类型不统一,导致通过拖拽上传的CAD文件无法在加载时被查询到:

操作 文件类型 位置
拖拽上传CAD 'cad_file' 第758行
点击上传CAD 'cad_drawing' 第2415行
加载CAD文件 'cad_drawing' 第2978行

结果:

  • ✅ 点击上传的CAD文件能正常显示(类型一致)
  • ❌ 拖拽上传的CAD文件不显示(类型不匹配)
  • 造成"上传了X个文件,但只显示Y个文件"的问题

修复方案

统一所有CAD文件操作使用 'cad_file' 类型:

修改位置:

  1. 点击上传CAD (第2415行): 'cad_drawing''cad_file'
  2. 加载CAD文件 (第2978行): 'cad_drawing''cad_file'

修复后:

  • ✅ 拖拽上传的CAD文件能正常显示
  • ✅ 点击上传的CAD文件能正常显示
  • ✅ 上传数量与显示数量完全一致

问题3: 上传数量限制 ✅

调查结果

没有5张照片的硬性限制!

实际限制:

  • 图片: 无数量限制,单个文件最大10MB
  • CAD文件: 无数量限制,单个文件最大50MB
  • AI设计分析: 最多20个文件(扩展配置)

上传方式:

  1. 点击上传: 支持多选,一次可选多个文件
  2. 拖拽上传: 支持拖拽多个文件或企业微信群聊内容
  3. 混合上传: 可多次上传,无总数限制

文件类型支持:

图片: jpg, jpeg, png, gif, webp, bmp, svg
CAD:  dwg, dxf, rvt, ifc, step, stp, iges, igs, pdf

📝 修改文件清单

1. stage-requirements.component.html

修改: 删除"生成客服标注"按钮

<!-- 删除前 -->
<button class="btn btn-outline btn-generate" (click)="generateServiceNotes()">
  <span class="icon-text">📄</span>
  <span>生成客服标注</span>
</button>

<!-- 删除后: 该按钮已完全移除 -->

2. stage-requirements.component.ts

修改: 统一CAD文件类型为 'cad_file'

修改点1: 点击上传CAD (第2415行)

// 修改前
'cad_drawing'

// 修改后
'cad_file'

修改点2: 加载CAD文件 (第2978行)

// 修改前
{
  fileType: 'cad_drawing',
  stage: 'requirements'
}

// 修改后
{
  fileType: 'cad_file',
  stage: 'requirements'
}

✅ 验证步骤

1. 验证"生成客服标注"按钮已删除

  • 打开AI设计分析页面
  • 上传图片并完成AI分析
  • 确认只显示"生成客户报告"按钮
  • 确认没有"生成客服标注"按钮

2. 验证CAD文件上传和显示

点击上传:

  • 展开空间需求管理
  • 点击"上传CAD"按钮
  • 选择CAD文件(dwg/dxf/pdf)
  • 确认文件成功上传
  • 刷新页面,确认文件仍然显示

拖拽上传:

  • 展开空间需求管理
  • 拖拽CAD文件到拖拽区域
  • 确认文件成功上传
  • 刷新页面,确认文件仍然显示

混合测试:

  • 先点击上传2个CAD文件
  • 再拖拽上传2个CAD文件
  • 确认显示4个CAD文件
  • 刷新页面,确认仍显示4个CAD文件

3. 验证图片上传数量

多次上传:

  • 第1次上传5张图片
  • 第2次上传5张图片
  • 第3次上传5张图片
  • 确认显示15张图片
  • 刷新页面,确认仍显示15张图片

大批量上传:

  • 一次性选择10张图片
  • 确认全部上传成功
  • 确认全部显示

🎯 预期效果

修复前

  • ❌ 拖拽上传的CAD文件不显示
  • ❌ 上传5个CAD,只显示2个(点击上传的)
  • ❌ 用户困惑:"我明明上传了,为什么不显示?"

修复后

  • ✅ 拖拽上传的CAD文件正常显示
  • ✅ 上传5个CAD,显示5个
  • ✅ 点击上传和拖拽上传的文件都能正常显示
  • ✅ 上传数量与显示数量完全一致
  • ✅ 图片和CAD文件无数量限制
  • ✅ "生成客服标注"按钮已移除

📊 技术细节

CAD文件上传流程

用户操作
  ↓
onDrop/handleSpaceImageUpload
  ↓
识别文件类型(isCADFile)
  ↓
uploadCADFiles/handleSpaceImageUpload
  ↓
projectFileService.uploadProjectFileWithRecord
  └─ fileType: 'cad_file'  ← 统一使用
  ↓
创建记录并添加到cadFiles数组
  ↓
触发AI分析
  ↓
保存到数据库

文件加载流程

页面加载/刷新
  ↓
loadProjectFiles
  ↓
查询图片: fileType='reference_image'
  ↓
查询CAD: fileType='cad_file'  ← 统一使用
  ↓
填充referenceImages和cadFiles数组
  ↓
加载AI分析结果
  ↓
渲染显示

🚀 后续优化建议

  1. 添加上传进度反馈

    • 显示"正在上传X/Y个文件"
    • 显示每个文件的上传进度百分比
  2. 批量操作优化

    • 支持批量删除
    • 支持批量移动到其他空间
  3. 文件去重

    • 检测重复文件(相同名称或MD5)
    • 提示用户"该文件已存在"
  4. 性能优化

    • 大量文件时使用虚拟滚动
    • 缩略图懒加载
  5. 错误处理增强

    • 上传失败时显示具体原因
    • 提供重试按钮

📝 相关文件

  • stage-requirements.component.html - 删除按钮
  • stage-requirements.component.ts - 统一CAD文件类型
  • stage-requirements-upload-fix.md - 本修复文档