@if (loading) {

加载报价数据...

} @if (!loading) { @if (canEdit) {

产品设计产品 ({{ products.length }}个)

} @if (quotation.spaces.length === 0 && products.length > 0) {

尚未生成报价

已加载 {{ products.length }} 个产品设计产品,请点击"生成报价"按钮

@if (canEdit) { }
} @else if (quotation.spaces.length === 0) {

暂无产品设计产品

该项目还没有创建任何产品设计产品

@if (canEdit) { }
} @else {

报价明细 ({{ quotation.spaces.length }}个产品设计产品)

@if (quotation.generatedAt) { 生成于: {{ quotation.generatedAt | date:'MM-dd HH:mm' }} } @if (quotation.validUntil) { 有效期至: {{ quotation.validUntil | date:'yyyy-MM-dd' }} }
@if (viewMode === 'card') {
@for (space of quotation.spaces; track space.name) {

{{ space.name }}

{{ getStatusTextForSpace(space.productId) }} {{ getDesignerNameForSpace(space.productId) }}

{{ formatPrice(calculateSpaceSubtotal(space)) }}

@if (quotation.spaceBreakdown?.length > 1) { {{ formatPercentage(getSpacePercentage(space.productId)) }} }
@if (canEdit) { }
@if (isProductExpanded(space.name)) {
@if (getProductForSpace(space.productId)) {
产品类型: {{ getProductForSpace(space.productId)?.get('productType') }}
空间面积: {{ getProductForSpace(space.productId)?.get('space')?.area || 0 }}㎡
复杂度: {{ getProductForSpace(space.productId)?.get('space')?.complexity || 'medium' }}
基础报价: {{ formatPrice(getProductForSpace(space.productId)?.get('quotation')?.price || 0) }}
}
@for (processType of processTypes; track processType.key) {
{{ processType.name }}
@if (isProcessEnabled(space, processType.key)) {
元/{{ getProcessUnit(space, processType.key) }}
{{ getProcessUnit(space, processType.key) }}
小计: ¥{{ calculateProcessSubtotal(space, processType.key).toFixed(2) }}
}
}
}
}
} @if (viewMode === 'table') {
@for (space of quotation.spaces; track space.name) {

{{ space.name }}

小计: ¥{{ calculateSpaceSubtotal(space).toFixed(2) }}
@for (processType of processTypes; track processType.key) { }
工序 单价(元) 数量 单位 小计(元)
{{ processType.name }} @if (isProcessEnabled(space, processType.key)) { } @else { - } @if (isProcessEnabled(space, processType.key)) { } @else { - } {{ getProcessUnit(space, processType.key) || '-' }} @if (isProcessEnabled(space, processType.key)) { ¥{{ calculateProcessSubtotal(space, processType.key).toFixed(2) }} } @else { - }
}
}

报价汇总

@if (quotation.spaceBreakdown?.length > 1) {
}
@if (quotation.spaceBreakdown?.length > 1 && showBreakdown) {
@for (item of quotation.spaceBreakdown; track item.spaceId) {
{{ item.spaceName }} {{ formatPrice(item.amount) }} {{ formatPercentage(item.percentage) }}
}
}
报价总额 {{ formatPrice(quotation.total) }}
@if (quotation.generatedAt) {
生成于 {{ quotation.generatedAt | date:'yyyy-MM-dd HH:mm' }} @if (quotation.validUntil) { 有效期至 {{ quotation.validUntil | date:'yyyy-MM-dd' }} }
}
} }