| | |
| | | <el-descriptions-item label="付款方式">{{ detailData.paymentMethod || "--" }}</el-descriptions-item> |
| | | <el-descriptions-item label="合同金额" :span="2"> |
| | | <span style="font-size: 18px; color: #e6a23c; font-weight: bold;"> |
| | | ¥{{ Number(detailData.contractAmount ?? 0).toFixed(2) }} |
| | | ¥{{ contractAmount.toFixed(2) }} |
| | | </span> |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | |
| | | return props.detailData || {}; |
| | | }); |
| | | |
| | | // 合同金额:后端详情接口未返回 contractAmount 时,用产品明细含税总价求和兜底 |
| | | const contractAmount = computed(() => { |
| | | const detail = props.detailData || {}; |
| | | const raw = Number(detail.contractAmount); |
| | | if (raw > 0) return raw; |
| | | const products = detail.productData || []; |
| | | return products.reduce( |
| | | (sum, p) => sum + Number(p.taxInclusiveTotalPrice || 0), |
| | | 0 |
| | | ); |
| | | }); |
| | | |
| | | const attachmentList = computed(() => { |
| | | const list = props.row.storageBlobVOList || props.row.storageBlobDTOs || []; |
| | | return Array.isArray(list) ? list : []; |