// 在 stage-delivery.component.ts 的 line 518 后添加以下方法: /** * 统一旧数据的 currentStage 为"交付执行" */ async unifyDeliveryStageForOldData(): Promise { if (!this.project) return; const currentStage = this.project.get('currentStage'); const validDeliveryStages = ['白模', '软装', '渲染', '后期']; if (validDeliveryStages.includes(currentStage)) { console.log(`🔥 [统一阶段] 检测到旧数据 currentStage="${currentStage}",统一为"交付执行"`); const data = this.project.get('data') || {}; data.deliverySubStage = currentStage; this.project.set('currentStage', '交付执行'); this.project.set('data', data); try { await this.project.save(); console.log(`✅ [统一阶段] currentStage 已统一为"交付执行",子阶段保存到 deliverySubStage`); } catch (e) { console.error('❌ [统一阶段] 更新失败:', e); } } else if (currentStage === '交付执行') { const data = this.project.get('data') || {}; if (!data.deliverySubStage) { const deliveryStageStatus = data.deliveryStageStatus || {}; const stageOrder = ['white_model', 'soft_decor', 'rendering', 'post_process']; const stageNameMap: Record = { 'white_model': '白模', 'soft_decor': '软装', 'rendering': '渲染', 'post_process': '后期' }; let targetSubStage = '白模'; for (const stageId of stageOrder) { const stageKey = stageId.replace('_', ''); const status = deliveryStageStatus[stageKey]?.status; if (status !== 'approved') { targetSubStage = stageNameMap[stageId]; break; } } data.deliverySubStage = targetSubStage; this.project.set('data', data); try { await this.project.save(); console.log(`✅ [统一阶段] deliverySubStage 初始化为: ${targetSubStage}`); } catch (e) { console.error('❌ [统一阶段] deliverySubStage 初始化失败:', e); } } } }