@if (loading) {

加载售后信息...

} @if (!loading) {
@if (activeTab === 'overview') {
@if (archiveStatus.archived) {

项目已归档

归档时间: {{ archiveStatus.archiveTime | date:'yyyy-MM-dd HH:mm' }}

归档人: {{ archiveStatus.archivedBy?.name }}

}

整体完成度

{{ stats.completionRate }}%
💰
尾款状态
{{ getPaymentStatusText() }}
客户满意度
{{ stats.averageRating }}/5.0
📊
复盘分析
{{ projectRetrospective ? '已生成' : '未生成' }}

快捷操作

} @if (activeTab === 'payment') {

尾款总览

{{ getPaymentStatusText() }}
总金额
{{ formatCurrency(finalPayment.totalAmount) }}
已支付
{{ formatCurrency(finalPayment.paidAmount) }}
待支付
{{ formatCurrency(finalPayment.remainingAmount) }}
已完成 {{ finalPayment.totalAmount > 0 ? ((finalPayment.paidAmount / finalPayment.totalAmount) * 100).toFixed(1) : 0 }}%
@if (finalPayment.status === 'overdue') {
尾款已逾期 {{ finalPayment.overdueDays }} 天,请尽快处理
}
@if (isMultiProductProject && finalPayment.productBreakdown.length > 0) {

按空间分摊

@for (item of finalPayment.productBreakdown; track item.productId) {
{{ item.productName }}
{{ item.percentage.toFixed(1) }}%
{{ formatCurrency(item.amount) }} 已付: {{ formatCurrency(item.paidAmount) }}
}
}

支付凭证 {{ finalPayment.paymentVouchers.length }}

@if (finalPayment.paymentVouchers.length === 0) {

暂无支付凭证

} @else {
@for (voucher of finalPayment.paymentVouchers; track voucher.id) {
支付凭证 @if (canEdit) { }
@if (canEdit) { } @else { {{ formatCurrency(voucher.amount) }} }
{{ voucher.paymentMethod }}
{{ voucher.paymentTime | date:'yyyy-MM-dd HH:mm' }}
@if (voucher.productId && isMultiProductProject) {
关联: {{ getProductNameById(voucher.productId) }}
} @if (voucher.ocrResult) {
OCR识别 {{ getOCRConfidenceText(voucher.ocrResult.confidence) }}
}
}
} @if (canEdit && finalPayment.status !== 'completed') {
@if (uploadStates.size > 0) {
@for (item of uploadStates | keyvalue; track item.key) {
{{ item.value.progress }}%
@if (item.value.imagePreview) {
上传预览
}
@switch (item.value.status) { @case ('uploading') { } @case ('analyzing') {
} @case ('completed') { } @case ('error') { } } {{ item.value.message }} @if (item.value.status === 'analyzing' && item.value.startTime) {
分析中:已完成 {{ item.value.progress }}% @if (item.value.estimatedTime) { 预计剩余 {{ item.value.estimatedTime }}秒 }
}
@if (item.value.status === 'error') {
}
}
}
}
} @if (activeTab === 'feedback') {
@if (!customerFeedback.submitted) { } @else { }
} @if (activeTab === 'retrospective') {
@if (!projectRetrospective) {

项目复盘尚未生成

系统将基于项目数据自动生成深度分析报告

} @else {

执行摘要

生成于 {{ projectRetrospective.generatedAt | date:'yyyy-MM-dd HH:mm' }}

{{ projectRetrospective.summary }}

项目亮点

    @for (highlight of projectRetrospective.highlights; track $index) {
  • {{ highlight }}
  • }

遇到的挑战

    @for (challenge of projectRetrospective.challenges; track $index) {
  • {{ challenge }}
  • }

经验教训

    @for (lesson of projectRetrospective.lessons; track $index) {
  • {{ lesson }}
  • }

改进建议

    @for (rec of projectRetrospective.recommendations; track $index) {
  • {{ rec }}
  • }

效率分析

{{ projectRetrospective.efficiencyAnalysis.grade }} 级
{{ projectRetrospective.efficiencyAnalysis.overallScore }}
综合效率
时间效率
{{ projectRetrospective.efficiencyAnalysis.timeEfficiency.score }}%
质量效率
{{ projectRetrospective.efficiencyAnalysis.qualityEfficiency.score }}%
资源利用
{{ projectRetrospective.efficiencyAnalysis.resourceUtilization.score }}%

📊 详细数据统计

⏱️
项目周期
{{ projectRetrospective.efficiencyAnalysis.timeEfficiency.actualDuration }}天
计划{{ projectRetrospective.efficiencyAnalysis.timeEfficiency.plannedDuration }}天
{{ projectRetrospective.efficiencyAnalysis.timeEfficiency.variance > 0 ? '延期' : '提前' }} {{ Math.abs(projectRetrospective.efficiencyAnalysis.timeEfficiency.variance) }}%
首次通过率
{{ projectRetrospective.efficiencyAnalysis.qualityEfficiency.firstPassYield }}%
修改率{{ projectRetrospective.efficiencyAnalysis.qualityEfficiency.revisionRate }}%
{{ projectRetrospective.efficiencyAnalysis.qualityEfficiency.firstPassYield >= 80 ? '优秀' : '需改进' }}
🐛
问题总数
{{ projectRetrospective.efficiencyAnalysis.qualityEfficiency.issueCount }}
平均每天{{ (projectRetrospective.efficiencyAnalysis.qualityEfficiency.issueCount / projectRetrospective.efficiencyAnalysis.timeEfficiency.actualDuration).toFixed(1) }}个
{{ projectRetrospective.efficiencyAnalysis.qualityEfficiency.issueCount < 5 ? '控制良好' : '需关注' }}
👥
团队规模
{{ projectRetrospective.efficiencyAnalysis.resourceUtilization.teamSize }}人
工作量{{ projectRetrospective.efficiencyAnalysis.resourceUtilization.workload }}%
闲置率{{ projectRetrospective.efficiencyAnalysis.resourceUtilization.idleRate }}%

各阶段效率对比

@for (stage of projectRetrospective.efficiencyAnalysis.stageMetrics; track stage.stage) {
{{ stage.stage }} {{ getStageStatusText(stage.status) }}
计划: {{ stage.plannedDays }}天 实际: {{ stage.actualDays }}天 效率: {{ stage.efficiency }}%
@if (stage.delayReason) {
原因: {{ stage.delayReason }}
}
}
@if (projectRetrospective.efficiencyAnalysis.bottlenecks.length > 0) {

瓶颈识别

@for (bottleneck of projectRetrospective.efficiencyAnalysis.bottlenecks; track $index) {
{{ getBottleneckSeverityIcon(bottleneck.severity) }} {{ bottleneck.stage }} {{ getBottleneckSeverityText(bottleneck.severity) }}
{{ bottleneck.issue }}
💡 {{ bottleneck.suggestion }}
}
}
@if (projectRetrospective.teamPerformance && projectRetrospective.teamPerformance.members.length > 0) {

团队绩效分析

团队得分: {{ projectRetrospective.teamPerformance.overallScore }}
@for (member of projectRetrospective.teamPerformance.members; track member.memberId) {
{{ member.memberName }}
{{ member.role }}
#{{ member.ranking }}
综合得分
{{ member.scores.overall }}
工作量 {{ member.scores.workload }}
质量 {{ member.scores.quality }}
效率 {{ member.scores.efficiency }}
协作 {{ member.scores.collaboration }}
时间分布
🎨 设计
{{ member.timeDistribution.design }}%
💬 沟通
{{ member.timeDistribution.communication }}%
🔧 修改
{{ member.timeDistribution.revision }}%
📄 管理
{{ member.timeDistribution.admin }}%
@if (member.contributions.length > 0) {
🎖️ 主要贡献
@for (contribution of member.contributions; track $index) {
• {{ contribution }}
}
} @if (member.strengths.length > 0) {
优势: @for (strength of member.strengths; track $index) { {{ strength }} }
} @if (member.improvements.length > 0) {
改进: @for (improvement of member.improvements; track $index) { {{ improvement }} }
}
}
}

财务分析

合同金额
{{ formatCurrency(projectRetrospective.financialAnalysis.revenueAnalysis.contracted) }}
已收金额
{{ formatCurrency(projectRetrospective.financialAnalysis.revenueAnalysis.received) }}
待收金额
{{ formatCurrency(projectRetrospective.financialAnalysis.revenueAnalysis.pending) }}
利润率
{{ projectRetrospective.financialAnalysis.profitMargin }}%

成本构成

人力成本 {{ projectRetrospective.financialAnalysis.costBreakdown.labor.toFixed(1) }}%
修改成本 {{ projectRetrospective.financialAnalysis.costBreakdown.revisions.toFixed(1) }}%
管理成本 {{ projectRetrospective.financialAnalysis.costBreakdown.overhead.toFixed(1) }}%
@if (projectRetrospective.financialAnalysis.budgetVariance !== 0) {
预算偏差: {{ projectRetrospective.financialAnalysis.budgetVariance > 0 ? '+' : '' }}{{ projectRetrospective.financialAnalysis.budgetVariance.toFixed(1) }}%
}
@if (projectRetrospective.satisfactionAnalysis) {

客户满意度分析

{{ projectRetrospective.satisfactionAnalysis.overallScore }}/100
NPS净推荐值
{{ projectRetrospective.satisfactionAnalysis.nps > 0 ? '+' : '' }}{{ projectRetrospective.satisfactionAnalysis.nps }}

各维度评分

@for (dimension of projectRetrospective.satisfactionAnalysis.dimensions; track dimension.name) {
{{ dimension.label }}
{{ dimension.score }}/100 基准: {{ dimension.benchmark }}
@if (dimension.variance !== 0) {
{{ dimension.variance > 0 ? '+' : '' }}{{ dimension.variance }}分 {{ dimension.variance > 0 ? '高于' : '低于' }}基准
}
}
@if (projectRetrospective.satisfactionAnalysis.improvementAreas.length > 0) {

改进领域

@for (area of projectRetrospective.satisfactionAnalysis.improvementAreas; track area.area) {
{{ area.area }} {{ area.priority === 'high' ? '高优先级' : area.priority === 'medium' ? '中优先级' : '低优先级' }}
当前: {{ area.currentScore }}分 目标: {{ area.targetScore }}分
{{ area.actionPlan }}
}
}
} @if (projectRetrospective.risksAndOpportunities) {

风险与机会

@if (projectRetrospective.risksAndOpportunities.risks.length > 0) {

风险识别

@for (risk of projectRetrospective.risksAndOpportunities.risks; track $index) {
{{ risk.type === 'timeline' ? '时间' : risk.type === 'budget' ? '财务' : risk.type === 'quality' ? '质量' : risk.type === 'resource' ? '资源' : '范围' }} {{ getBottleneckSeverityText(risk.severity) }}
{{ risk.description }}
🛡️ 缓解措施: {{ risk.mitigation }}
可能性: {{ risk.likelihood }}/5 影响: {{ risk.impact }}/5
}
} @if (projectRetrospective.risksAndOpportunities.opportunities.length > 0) {

机会识别

@for (opp of projectRetrospective.risksAndOpportunities.opportunities; track $index) {
{{ opp.area }} {{ opp.priority === 'high' ? '高优先级' : opp.priority === 'medium' ? '中优先级' : '低优先级' }}
{{ opp.description }}
💡 行动计划: {{ opp.actionPlan }}
潜力: {{ opp.potential }}/5 所需努力: {{ opp.effort }}/5
}
}
} @if (projectRetrospective.productRetrospectives && projectRetrospective.productRetrospectives.length > 0) {

产品级复盘

@for (product of projectRetrospective.productRetrospectives; track product.productId) {
{{ product.productName }}
{{ product.performance }}分
计划天数 {{ product.plannedDays }}天
实际天数 {{ product.actualDays }}天
@if (product.issues.length > 0) {
遇到的问题:
    @for (issue of product.issues; track $index) {
  • {{ issue }}
  • }
} @if (product.recommendations.length > 0) {
改进建议:
    @for (rec of product.recommendations; track $index) {
  • {{ rec }}
  • }
}
}
} @if (projectRetrospective.benchmarking) {

基准对比

历史对比

历史平均效率 {{ projectRetrospective.benchmarking.comparisonToHistory.averageEfficiency }}%
当前效率 {{ projectRetrospective.benchmarking.comparisonToHistory.currentEfficiency }}%
排名 第{{ projectRetrospective.benchmarking.comparisonToHistory.ranking }}名
百分位 {{ projectRetrospective.benchmarking.comparisonToHistory.percentile }}%
} }
}
@if (imagePreviewModal.visible) {
} }