ORDER_QUOTATION_SPACE_FIX_COMBINED.md 2.5 KB

订单分配阶段 - 方案1+方案3组合修复

修复策略

采用方案1(修改预设场景为空)+ 方案3(调用统一初始化方法)的组合方案。


修改详情

1️⃣ 导入 ProductSpaceService

文件quotation-editor.component.ts 第18行

import { ProductSpaceService } from '../services/product-space.service';

2️⃣ 注入依赖

文件quotation-editor.component.ts 第103-104行

constructor(private productSpaceService: ProductSpaceService) {}

3️⃣ 修改 presetScenes 为空(方案1)

文件quotation-editor.component.ts 第106-113行

presetScenes: { [key: string]: string[] } = {
  '家装': [],        // ✅ 不自动创建,由统一方法管理
  '工装': [],        // ✅ 不自动创建,由统一方法管理
  '建筑类': []       // ✅ 不自动创建,由统一方法管理
};

4️⃣ 修改 createDefaultProducts(方案3)

文件quotation-editor.component.ts 第328-376行

核心改进:调用 ProductSpaceService.createInitialSpaces() 统一方法


验证步骤

控制台日志输出

修复后的完整日志流程:

🏠 [报价编辑器] 检测到没有空间数据,调用统一初始化方法...
📋 [报价编辑器] 项目类型: 家装
🏠 [初始空间] 为项目 abc123 创建初始空间,类型: 家装
✅ [初始空间] 已创建 2 个初始空间
✅ [报价编辑器] 统一方法创建完成,共 2 个空间
📋 [报价编辑器] 空间列表: 客厅, 主卧
🔍 [报价编辑器] Product表查询结果: 2 条记录
✅ [报价编辑器] 产品列表已刷新,当前产品数: 2

预期效果

项目类型 空间数量 空间列表
家装 2个 客厅、主卧
工装 1个 主要空间
建筑类 1个 鸟瞰

统一管理的优势

  1. 数据一致性:订单分配阶段和报价编辑器使用相同的初始化逻辑
  2. 易维护性:只需在 ProductSpaceService.createInitialSpaces() 一处修改
  3. 容错性强:添加了回退机制,失败时创建一个默认空间
  4. 日志完善:详细的日志便于问题排查

测试要点

  1. ✅ 创建新的家装项目,验证只生成2个空间
  2. ✅ 创建新的工装项目,验证只生成1个空间
  3. ✅ 检查 Product 表记录数
  4. ✅ 检查报价明细显示的空间数量
  5. ✅ 验证用户可以手动添加更多空间