Show all 8092 crossbeam rows
This commit is contained in:
@@ -669,13 +669,23 @@
|
||||
.replace(/(?<=\d)-(?=\d)/g, '-\n');
|
||||
}
|
||||
|
||||
function normalizeCrossbeamRows(crossbeam) {
|
||||
if (Array.isArray(crossbeam)) {
|
||||
return crossbeam.length ? crossbeam : [{ height: '', length: '', quantity: '', remarks: '' }];
|
||||
}
|
||||
if (crossbeam && typeof crossbeam === 'object') {
|
||||
return [crossbeam];
|
||||
}
|
||||
return [{ height: '', length: '', quantity: '', remarks: '' }];
|
||||
}
|
||||
|
||||
function renderBudgetPlanInlineTables(plan) {
|
||||
if (!plan) return '-';
|
||||
const inputDays = plan.inputDays || {};
|
||||
const inputRebar = plan.inputRebar || {};
|
||||
const girderSpecs = Array.isArray(plan.girderSpecs) ? plan.girderSpecs : [];
|
||||
const predeck = plan.predeck || {};
|
||||
const crossbeam = plan.crossbeam || {};
|
||||
const crossbeamRows = normalizeCrossbeamRows(plan.crossbeam);
|
||||
|
||||
return `
|
||||
<div class="inline-plan-wrap">
|
||||
@@ -739,27 +749,33 @@
|
||||
</table>
|
||||
<table class="plan-table plan-table-split">
|
||||
<tr>
|
||||
<th rowspan="2">프리덱</th>
|
||||
<th colspan="4">프리덱</th>
|
||||
<th colspan="4">가로보</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>일반부(㎡)</th>
|
||||
<th>중분대(㎡)</th>
|
||||
<th>방호벽부(㎡)</th>
|
||||
<th>비고</th>
|
||||
<th rowspan="2">가로보</th>
|
||||
<th>형고(m)</th>
|
||||
<th>길이(m)</th>
|
||||
<th>수량(EA)</th>
|
||||
<th>비고</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>${escapeHtml(predeck.generalArea || '-')}</td>
|
||||
<td>${escapeHtml(predeck.medianArea || '-')}</td>
|
||||
<td>${escapeHtml(predeck.barrierArea || '-')}</td>
|
||||
<td class="plan-left">${escapeHtml(predeck.remarks || '-')}</td>
|
||||
<td>${escapeHtml(crossbeam.height || '-')}</td>
|
||||
<td>${escapeHtml(crossbeam.length || '-')}</td>
|
||||
<td>${escapeHtml(crossbeam.quantity || '-')}</td>
|
||||
<td class="plan-left">${escapeHtml(crossbeam.remarks || '-')}</td>
|
||||
</tr>
|
||||
${crossbeamRows.map((row, index) => `
|
||||
<tr>
|
||||
${index === 0 ? `
|
||||
<td rowspan="${crossbeamRows.length}">${escapeHtml(predeck.generalArea || '-')}</td>
|
||||
<td rowspan="${crossbeamRows.length}">${escapeHtml(predeck.medianArea || '-')}</td>
|
||||
<td rowspan="${crossbeamRows.length}">${escapeHtml(predeck.barrierArea || '-')}</td>
|
||||
<td rowspan="${crossbeamRows.length}" class="plan-left">${escapeHtml(predeck.remarks || '-')}</td>
|
||||
` : ''}
|
||||
<td>${escapeHtml(row.height || '-')}</td>
|
||||
<td>${escapeHtml(row.length || '-')}</td>
|
||||
<td>${escapeHtml(row.quantity || '-')}</td>
|
||||
<td class="plan-left">${escapeHtml(row.remarks || '-')}</td>
|
||||
</tr>
|
||||
`).join('')}
|
||||
</table>
|
||||
</div>
|
||||
`;
|
||||
@@ -920,7 +936,7 @@
|
||||
const inputRebar = plan.inputRebar || {};
|
||||
const girderSpecs = Array.isArray(plan.girderSpecs) ? plan.girderSpecs : [];
|
||||
const predeck = plan.predeck || {};
|
||||
const crossbeam = plan.crossbeam || {};
|
||||
const crossbeamRows = normalizeCrossbeamRows(plan.crossbeam);
|
||||
|
||||
planModalTitle.textContent = `${bridgeName || plan.projectName || '프로젝트'} 공사시행계획서`;
|
||||
planModalBody.innerHTML = `
|
||||
@@ -948,10 +964,25 @@
|
||||
</table>
|
||||
<div class="plan-section-title">교량제원 - 프리덱 / 가로보</div>
|
||||
<table class="plan-table">
|
||||
<tr><th>프리덱 일반부</th><td>${escapeHtml(predeck.generalArea || '-')}</td><th>가로보 형고</th><td>${escapeHtml(crossbeam.height || '-')}</td></tr>
|
||||
<tr><th>프리덱 중분대</th><td>${escapeHtml(predeck.medianArea || '-')}</td><th>가로보 길이</th><td>${escapeHtml(crossbeam.length || '-')}</td></tr>
|
||||
<tr><th>프리덱 방호벽부</th><td>${escapeHtml(predeck.barrierArea || '-')}</td><th>가로보 수량</th><td>${escapeHtml(crossbeam.quantity || '-')}</td></tr>
|
||||
<tr><th>프리덱 비고</th><td>${escapeHtml(predeck.remarks || '-')}</td><th>가로보 비고</th><td>${escapeHtml(crossbeam.remarks || '-')}</td></tr>
|
||||
<tr><th colspan="2">프리덱</th><th>형고(m)</th><th>길이(m)</th><th>수량(EA)</th><th>비고</th></tr>
|
||||
${crossbeamRows.map((row, index) => `
|
||||
<tr>
|
||||
${index === 0 ? `<th>일반부(㎡)</th><td>${escapeHtml(predeck.generalArea || '-')}</td>` : ''}
|
||||
${index === 1 ? `<th>중분대(㎡)</th><td>${escapeHtml(predeck.medianArea || '-')}</td>` : ''}
|
||||
${index === 2 ? `<th>방호벽부(㎡)</th><td>${escapeHtml(predeck.barrierArea || '-')}</td>` : ''}
|
||||
${index >= 3 ? `<th>비고</th><td>${escapeHtml(predeck.remarks || '-')}</td>` : ''}
|
||||
<td>${escapeHtml(row.height || '-')}</td>
|
||||
<td>${escapeHtml(row.length || '-')}</td>
|
||||
<td>${escapeHtml(row.quantity || '-')}</td>
|
||||
<td>${escapeHtml(row.remarks || '-')}</td>
|
||||
</tr>
|
||||
`).join('')}
|
||||
${crossbeamRows.length < 4 ? `
|
||||
${crossbeamRows.length <= 0 ? '' : ''}
|
||||
${crossbeamRows.length < 2 ? `<tr><th>중분대(㎡)</th><td>${escapeHtml(predeck.medianArea || '-')}</td><td colspan="4"></td></tr>` : ''}
|
||||
${crossbeamRows.length < 3 ? `<tr><th>방호벽부(㎡)</th><td>${escapeHtml(predeck.barrierArea || '-')}</td><td colspan="4"></td></tr>` : ''}
|
||||
${crossbeamRows.length < 4 ? `<tr><th>비고</th><td>${escapeHtml(predeck.remarks || '-')}</td><td colspan="4"></td></tr>` : ''}
|
||||
` : ''}
|
||||
</table>
|
||||
`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user