@if (activeTab === 'materials') {
{{ isFullDisplayMode ? '已展开所有分析详情' : '快速查看所有素材的完整分析' }}
@if (materials.length > 0) {
已上传素材
@for (material of materials; track material.id) {
{{ material.name }}
@if (material.type === 'image') {
} @else if (material.type === 'cad') {
}
@if (material.analysis) {
@if (material.type === 'text') {
} @else if (material.type === 'image') {
色温: {{ material.analysis.colorTemperature }}K
@if (material.analysis.mainColors && material.analysis.mainColors.length > 0) {
主色: {{ material.analysis.mainColors.length }}种
}
@if (isMaterialExpanded(material.id)) {
色彩分析
@if (material.analysis.mainColors && material.analysis.mainColors.length > 0) {
}
@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.surfaceProperties && material.analysis.textureAnalysis.materialClassification?.primaryMaterial) {
}
@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 && material.analysis.patternAnalysis.patternRecognition.primaryPatterns.length > 0) {
}
@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 (material.analysis.lightingAnalysis.lightingRatio) {
{{ material.analysis.lightingAnalysis.lightingRatio.keyToFill.toFixed(1) }}:1
({{ getRatioDescription(material.analysis.lightingAnalysis.lightingRatio.description) }})
主光
{{ material.analysis.lightingAnalysis.lightingRatio.keyLightIntensity }}%
补光
{{ material.analysis.lightingAnalysis.lightingRatio.fillLightIntensity }}%
}
@if (material.analysis.lightingAnalysis.lightDistribution) {
自然光
{{ material.analysis.lightingAnalysis.lightDistribution.natural }}%
人工光
{{ material.analysis.lightingAnalysis.lightDistribution.artificial }}%
直射光
{{ material.analysis.lightingAnalysis.lightDistribution.direct }}%
环境光
{{ material.analysis.lightingAnalysis.lightDistribution.ambient }}%
间接光
{{ material.analysis.lightingAnalysis.lightDistribution.indirect }}%
{{ getBalanceDescription(material.analysis.lightingAnalysis.lightDistribution.lightingBalance) }}
}
}
}
}
}
}
}
}
@if (false && 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 || 0 }} 种
色彩和谐:
{{ requirementMapping?.parameterMapping?.colorParams ? getColorHarmonyName(requirementMapping.parameterMapping.colorParams.colorHarmony) : '未知' }}
饱和度:
{{ requirementMapping?.parameterMapping?.colorParams?.saturation || 0 }}%
亮度:
{{ requirementMapping?.parameterMapping?.colorParams?.brightness || 0 }}%
空间映射
布局类型:
{{ requirementMapping?.parameterMapping?.spaceParams?.layout ? getLayoutTypeName(requirementMapping.parameterMapping.spaceParams.layout.type) : '未知' }}
空间流线:
{{ requirementMapping?.parameterMapping?.spaceParams?.layout ? getFlowTypeName(requirementMapping.parameterMapping.spaceParams.layout.flow) : '未知' }}
家具比例:
{{ requirementMapping?.parameterMapping?.spaceParams?.scale?.furniture || 0 }}%
开放度:
{{ requirementMapping?.parameterMapping?.spaceParams?.scale?.openness || 0 }}%
材质映射
纹理缩放:
{{ requirementMapping?.parameterMapping?.materialParams?.textureScale || 0 }}%
反射率:
{{ requirementMapping?.parameterMapping?.materialParams?.reflectivity || 0 }}%
粗糙度:
{{ requirementMapping?.parameterMapping?.materialParams?.roughness || 0 }}%
金属度:
{{ requirementMapping?.parameterMapping?.materialParams?.metallic || 0 }}%
} @else {
🎯
等待映射生成
请先完成图片分析,系统将自动生成需求映射
}
}
@if (activeTab === 'collaboration') {
@if (consistencyWarnings.length > 0) {
一致性预警:
@for (warning of consistencyWarnings; track warning) {
{{ warning }}
}
}
@for (requirement of requirementItems; track requirement.id) {
@if (requirement.status === 'pending') {
}
@if (requirement.showComments) {
}
}
}
@if (activeTab === 'progress') {
{{ getProgressPercentage() }}%
{{ getProgressPercentage() }}%
完成度
{{ getRequirementCountByStatus('confirmed') }}
已确认
{{ getRequirementCountByStatus('pending') }}
待确认
{{ getRequirementCountByStatus('rejected') }}
已拒绝
{{ getUnresolvedCommentsCount() }}
待解决评论
@if (historyStates.length > 0) {
@for (state of historyStates; track $index) {
状态快照:{{ state.requirementItems.length }}个需求项,
{{ getRequirementCountByStatus('confirmed') }}个已确认
}
} @else {
}
需求状态分布
已确认
{{ getRequirementCountByStatus('confirmed') }}
待确认
{{ getRequirementCountByStatus('pending') }}
已拒绝
{{ getRequirementCountByStatus('rejected') }}
}