@if (loading) {

加载需求信息...

} @if (!loading) {

🏠 空间需求管理

按空间管理参考图片、CAD文件和特殊需求

@for (space of projectProducts; track space.id) {
{{ getSpaceDisplayName(space) }} 参考 {{ getTotalSpaceFileCount(space.id) }}
@if (getSpaceSpecialRequirements(space.id)) {
特殊要求: {{ getSpaceSpecialRequirements(space.id) | slice:0:30 }}{{ getSpaceSpecialRequirements(space.id).length > 30 ? '...' : '' }}
}
@if (canEdit) { }
@if (isSpaceExpanded(space.id)) {

拖拽参考图片到此

或点击下方按钮上传

AI将自动分析图片并智能分类

@for (type of imageTypes; track type.id) { }
@if (activeImageTab[space.id] === 'all') {
所有参考文件
@if (canEdit) { }
@if (getSpaceReferenceImages(space.id).length > 0) {
@for (image of getSpaceReferenceImages(space.id); track image.id) {
{{ getImageTypeLabel(image.type) }} @if (hasImageAnalysis(image.id)) { }
@if (canEdit) { }
}
} @else {

暂无参考图片

}
@if (getSpaceCADFiles(space.id).length > 0) {
CAD文件
@for (cadFile of getSpaceCADFiles(space.id); track cadFile.id) {
{{ cadFile.name }}
@if (hasImageAnalysis(cadFile.id)) { 已分析 }
@if (canEdit) { }
}
} @if (getImageAnalysisResults(space.id).length > 0) {
AI分析结果
@for (analysis of getImageAnalysisResults(space.id); track analysis.imageId) {
参考类型: {{ getImageTypeLabel(analysis.imageType) }}
|
备注用户要求
@if (analysis.originalAnalysis) {
原有分析维度
@if (analysis.originalAnalysis.quality) {
质量评分: {{ analysis.originalAnalysis.quality.score }}/100 ({{ analysis.originalAnalysis.quality.level }})
} @if (analysis.originalAnalysis.content) {
内容分类: {{ analysis.originalAnalysis.content.category }}
} @if (analysis.originalAnalysis.technical) {
像素: {{ analysis.originalAnalysis.technical.megapixels }}MP
}
} @if (analysis.enhancedAnalysis) {
设计分析维度
@if (analysis.enhancedAnalysis.style) {
风格: {{ analysis.enhancedAnalysis.style }}
} @if (analysis.enhancedAnalysis.atmosphere) {
氛围: {{ analysis.enhancedAnalysis.atmosphere }}
} @if (analysis.enhancedAnalysis.material) {
材质: {{ analysis.enhancedAnalysis.material }}
} @if (analysis.enhancedAnalysis.texture) {
纹理: {{ analysis.enhancedAnalysis.texture }}
}
} @if (analysis.styleElements) {
风格元素
@for (keyword of analysis.styleElements.styleKeywords; track keyword) { {{ keyword }} }
} @if (analysis.colorScheme) {
色彩搭配
@if (analysis.colorScheme.primaryColors && analysis.colorScheme.primaryColors.length > 0) {
主色调:
@for (color of analysis.colorScheme.primaryColors; track color) {
}
} @if (analysis.colorScheme.secondaryColors && analysis.colorScheme.secondaryColors.length > 0) {
辅助色:
@for (color of analysis.colorScheme.secondaryColors; track color) {
}
} @if (analysis.colorScheme.accentColors && analysis.colorScheme.accentColors.length > 0) {
点缀色:
@for (color of analysis.colorScheme.accentColors; track color) {
}
}
} @if (analysis.materialAnalysis) {
材质分析
@for (material of analysis.materialAnalysis.materials; track material) { {{ material }} }
} @if (analysis.layoutFeatures) {
布局特征
@for (feature of analysis.layoutFeatures.features; track feature) { {{ feature }} }
} @if (analysis.atmosphereAnalysis) {
空间氛围
{{ analysis.atmosphereAnalysis.atmosphere }}
} @if (analysis.colorAnalysis) {
色彩解析报告
@if (analysis.colorAnalysis.brightness) {
明度: {{ analysis.colorAnalysis.brightness }}
} @if (analysis.colorAnalysis.hue) {
色相: {{ analysis.colorAnalysis.hue }}
} @if (analysis.colorAnalysis.saturation) {
饱和度: {{ analysis.colorAnalysis.saturation }}
} @if (analysis.colorAnalysis.openness) {
色彩开放度: {{ analysis.colorAnalysis.openness }}
} @if (analysis.colorAnalysis.extracted && analysis.colorAnalysis.extracted.length > 0) {
提取颜色:
@for (color of analysis.colorAnalysis.extracted; track color) {
}
} @if (analysis.colorAnalysis.organized && analysis.colorAnalysis.organized.length > 0) {
组织颜色 (主次):
@for (org of analysis.colorAnalysis.organized; track org.color) {
{{ org.role }}: {{ org.percentage }}%
}
}
}
}
}
用户需求备注
} @else if (activeImageTab[space.id] === 'cad') {
CAD文件
@if (canEdit) { }
@if (getSpaceCADFiles(space.id).length > 0) {
@for (file of getSpaceCADFiles(space.id); track file.id) {
{{ file.name }}

{{ formatFileSize(file.size) }} · {{ file.uploadTime | date:'MM-dd HH:mm' }}

@if (hasImageAnalysis(file.id)) { 已分析 }
@if (canEdit) { }
}
} @else {

暂无CAD文件

}
} @else {
{{ getImageTypeLabel(activeImageTab[space.id]) }}图片
@if (canEdit) { }
@if (getImagesByType(space.id, activeImageTab[space.id]).length > 0) {
@for (image of getImagesByType(space.id, activeImageTab[space.id]); track image.id) {
{{ getImageTypeLabel(image.type) }} @if (hasImageAnalysis(image.id)) { }
@if (canEdit) { }
}
} @else {

暂无{{ getImageTypeLabel(activeImageTab[space.id]) }}图片

}
}
}
}
@if (aiAnalysisResults.comprehensiveAnalysis) {

综合AI分析

分析完成

整体风格定位

{{ aiAnalysisResults.comprehensiveAnalysis.overallStyle }}

AI推荐色彩方案

主色调
副色调
点缀色

AI材质推荐

@for (material of aiAnalysisResults.comprehensiveAnalysis.materialRecommendations; track $index) { {{ material }} }

布局优化建议

    @for (optimization of aiAnalysisResults.comprehensiveAnalysis.layoutOptimization; track $index) {
  • {{ optimization }}
  • }

家装预算评估

预估范围: ¥{{ aiAnalysisResults.comprehensiveAnalysis.budgetAssessment.estimatedMin?.toLocaleString() }} - ¥{{ aiAnalysisResults.comprehensiveAnalysis.budgetAssessment.estimatedMax?.toLocaleString() }}
风险等级: {{ getRiskLevelName(aiAnalysisResults.comprehensiveAnalysis.budgetAssessment.riskLevel) }}

潜在风险因素

@for (risk of aiAnalysisResults.comprehensiveAnalysis.riskFactors; track $index) { {{ risk }} }
}

AI设计方案

需求完成度
{{ calculateRequirementsCompleteness() }}%
@if (!aiSolution) {

尚未生成AI方案

@if (canEdit) { }
} @else {
已生成 @if (canEdit) { }

{{ aiSolution.content }}

@for (space of aiSolution.spaces; track space.id) {

{{ space.name }}

{{ getSpaceTypeName(space.type) }}

{{ space.styleDescription }}

色彩搭配:
@for (color of space.colorPalette; track color) {
}
材质选择:
@for (material of space.materials; track material) { {{ material }} }
家具推荐:
@for (item of space.furnitureRecommendations; track item) { {{ item }} }
}
}

AI设计助手

@if (showAIChat) {
@for (message of aiChatMessages; track message.id) {
@if (message.role == 'user') { } @else { }
{{ message.content }}
{{ message.timestamp | date:'HH:mm' }}
} @if (aiChatMessages.length == 0) {

向AI设计助手咨询任何家装问题

}
}
@if (canEdit) {
}
}