确认需求

1
2
3
4
{{ getProgressPercentage() | number:'1.0-0' }}% 完成
@if (activeTab === 'materials') {
文本描述
参考图片

点击上传参考图片

支持多张图片,自动分析色调和材质
CAD图纸

点击上传CAD图纸

自动识别结构和空间尺寸
@if (materials.length > 0) {
已上传素材
@for (material of materials; track material.id) {
{{ material.type === 'text' ? '文本' : material.type === 'image' ? '图片' : 'CAD' }}
{{ material.name }}
@if (material.type === 'image') { } @else if (material.type === 'cad') { } @if (material.analysis) {
@if (material.type === 'text') {
@if (material.analysis.atmosphere) {
氛围: {{ material.analysis.atmosphere.description }}
}
} @else if (material.type === 'image') {
色温: {{ material.analysis.colorTemperature }}K
@if (material.analysis.enhancedColorAnalysis) {
色彩分析
@if (material.analysis.enhancedColorAnalysis.colorWheel) {
主色调: {{ material.analysis.enhancedColorAnalysis.colorWheel.primaryHue }}° 饱和度: {{ material.analysis.enhancedColorAnalysis.colorWheel.saturation }}%
} @if (material.analysis.enhancedColorAnalysis.colorPsychology) {
{{ material.analysis.enhancedColorAnalysis.colorPsychology.primaryMood }} {{ material.analysis.enhancedColorAnalysis.colorPsychology.atmosphere }}
}
@if (material.analysis.formAnalysis) {
形体分析
@if (material.analysis.formAnalysis.overallAssessment) {
复杂度:
视觉冲击:
}
} @if (material.analysis.textureAnalysis) {
质感分析
@if (material.analysis.textureAnalysis.materialClassification) {
{{ material.analysis.textureAnalysis.materialClassification.primaryMaterial.category }} @if (material.analysis.textureAnalysis.surfaceProperties) { {{ material.analysis.textureAnalysis.surfaceProperties.roughness.level }} }
}
} @if (material.analysis.patternAnalysis) {
纹理分析
@if (material.analysis.patternAnalysis.patternRecognition) {
@for (pattern of material.analysis.patternAnalysis.patternRecognition.primaryPatterns; track pattern.type) { {{ pattern.type }} ({{ pattern.coverage }}%) }
}
} @if (material.analysis.lightingAnalysis) {
灯光分析
@if (material.analysis.lightingAnalysis.ambientAnalysis) {
{{ material.analysis.lightingAnalysis.ambientAnalysis.lightingMood?.primary || '未知' }} @if (material.analysis.lightingAnalysis.illuminationAnalysis) { 亮度: {{ material.analysis.lightingAnalysis.illuminationAnalysis.brightness?.overall || 0 }}% } @if (material.analysis.lightingAnalysis.lightSourceIdentification) { 光源: {{ material.analysis.lightingAnalysis.lightSourceIdentification.lightingSetup?.dominantSource || '未知' }} }
}
}
}
}
}
}
}
} @if (activeTab === 'mapping') {

需求映射进度

@if (uploadedFiles.length > 0) { 📸 已同步 {{ uploadedFiles.length }} 张参考图片 }
@for (step of testSteps; track step.id) {
{{ getStepIcon(step.status) }}
{{ step.name }}
@switch (step.status) { @case ('pending') { 等待中 } @case ('in-progress') { 进行中... } @case ('completed') { 已完成 } @case ('error') { 失败 } }
}

1. 图片上传

@if (uploadedFiles.length === 0) {
📁
选择图片文件进行测试
支持 JPG、PNG 格式,可选择多张图片
} @else {

已上传文件 ({{ uploadedFiles.length }} 张图片)

✨ 来自素材分析的参考图片
@for (file of uploadedFiles; track file.id) {
{{ file.name }}
{{ (file.size! / 1024 / 1024).toFixed(2) }} MB
}
} @if (isUploading) {
正在上传文件...
}

2. 图片分析

@if (isAnalyzing) {

正在分析图片...

@if (uploadedFiles.length > 1) { 正在分析 {{ uploadedFiles.length }} 张图片,系统将合并分析结果 } @else { 系统正在进行色彩、纹理、形态、图案和灯光分析 }

} @else if (analysisError) {

分析失败

{{ analysisError }}

} @else if (analysisResult) {

分析完成 ✅

主要颜色: {{ analysisResult.enhancedAnalysis?.colorWheel?.colorDistribution?.length || 0 }} 种
材质类型: {{ getMaterialName(analysisResult.textureAnalysis?.materialClassification?.primaryMaterial?.category) || '未识别' }}
灯光情绪: {{ getLightingMoodName(analysisResult.lightingAnalysis?.ambientAnalysis?.lightingMood?.primary) || '未识别' }}
空间形态: {{ analysisResult.formAnalysis?.geometryAnalysis?.complexity ? getComplexityName(analysisResult.formAnalysis.geometryAnalysis.complexity) : '未识别' }}
} @else {
🔍

等待分析

请先上传图片,系统将自动开始分析

}

3. 需求映射生成

@if (isGeneratingMapping) {

正在生成需求映射...

基于分析结果生成场景参数和映射关系

} @else if (mappingError) {

映射生成失败

{{ mappingError }}

} @else if (requirementMapping) {

需求映射生成完成 ✅

场景生成
基础场景: {{ requirementMapping.sceneGeneration.baseScene }}
@if (requirementMapping.sceneGeneration.atmospherePreview) {
氛围感预览图
氛围感预览图
}
参数映射
颜色映射
主要颜色: {{ requirementMapping.parameterMapping.colorParams.primaryColors.length }} 种
色彩和谐: {{ getColorHarmonyName(requirementMapping.parameterMapping.colorParams.colorHarmony) }}
饱和度: {{ requirementMapping.parameterMapping.colorParams.saturation }}%
亮度: {{ requirementMapping.parameterMapping.colorParams.brightness }}%
空间映射
布局类型: {{ getLayoutTypeName(requirementMapping.parameterMapping.spaceParams.layout.type) }}
空间流线: {{ getFlowTypeName(requirementMapping.parameterMapping.spaceParams.layout.flow) }}
家具比例: {{ requirementMapping.parameterMapping.spaceParams.scale.furniture }}%
开放度: {{ requirementMapping.parameterMapping.spaceParams.scale.openness }}%
材质映射
纹理缩放: {{ requirementMapping.parameterMapping.materialParams.textureScale }}%
反射率: {{ requirementMapping.parameterMapping.materialParams.reflectivity }}%
粗糙度: {{ requirementMapping.parameterMapping.materialParams.roughness }}%
金属度: {{ requirementMapping.parameterMapping.materialParams.metallic }}%
} @else {
🎯

等待映射生成

请先完成图片分析,系统将自动生成需求映射

}
} @if (activeTab === 'collaboration') {
@if (consistencyWarnings.length > 0) {
一致性预警: @for (warning of consistencyWarnings; track warning) {
{{ warning }}
}
}
需求项目
@for (requirement of requirementItems; track requirement.id) {
{{ requirement.title }}

{{ requirement.description }}

@for (tag of requirement.tags; track tag) { {{ tag }} }
{{ requirement.status === 'confirmed' ? '已确认' : requirement.status === 'rejected' ? '已拒绝' : '待确认' }}
@if (requirement.status === 'pending') { }
@if (requirement.showComments) {
@if (getCommentsForRequirement(requirement.id).length > 0) {
@for (comment of getCommentsForRequirement(requirement.id); track comment.id) {
{{ comment.author }} {{ comment.role === 'designer' ? '设计师' : comment.role === 'customer-service' ? '客服' : '客户' }} {{ comment.timestamp | date:'MM-dd HH:mm' }} @if (comment.status === 'pending') { }
{{ comment.content }}
}
}
}
}
} @if (activeTab === 'progress') {
整体进度
{{ getProgressPercentage() }}%
{{ getProgressPercentage() }}%
完成度
{{ getRequirementCountByStatus('confirmed') }}
已确认
{{ getRequirementCountByStatus('pending') }}
待确认
{{ getRequirementCountByStatus('rejected') }}
已拒绝
{{ getUnresolvedCommentsCount() }}
待解决评论
历史状态
@if (historyStates.length > 0) {
@for (state of historyStates; track $index) {
{{ state.timestamp | date:'MM-dd HH:mm' }} {{ state.author }}
状态快照:{{ state.requirementItems.length }}个需求项, {{ getRequirementCountByStatus('confirmed') }}个已确认
}
} @else {

暂无历史状态记录

}
需求状态分布
已确认 {{ getRequirementCountByStatus('confirmed') }}
待确认 {{ getRequirementCountByStatus('pending') }}
已拒绝 {{ getRequirementCountByStatus('rejected') }}
}
{{ getSaveStatusIcon() }} {{ getSaveStatusText() }}