task(CAD-9): bill of materials - buildBOM grouping by type+size with counts and total truss meters (corners count both arms), CSV export excel-friendly, dialog with table and download button

This commit is contained in:
Agent Zero
2026-08-31 22:36:21 +02:00
parent 748ba01083
commit 4398c675e4
4 changed files with 469 additions and 0 deletions
+103
View File
@@ -2974,3 +2974,106 @@ body.drawer-open { overflow: hidden; }
border-radius: 4px;
}
.layout-bar-print:hover { color: #4a90d9; background: rgba(74, 144, 217, 0.15); }
/* ─── Task CAD-9 BOM-Dialog ─── */
.bom-dialog-overlay {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
}
.bom-dialog {
background: #1e1e2e;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 10px;
padding: 20px;
min-width: 640px;
max-width: 800px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.bom-dialog-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 16px;
}
.bom-dialog-header h3 {
margin: 0;
font-size: 16px;
color: #e0e0e0;
}
.bom-close {
background: transparent;
border: none;
color: #888;
font-size: 18px;
cursor: pointer;
padding: 4px 8px;
border-radius: 4px;
}
.bom-close:hover {
color: #fff;
background: rgba(255, 255, 255, 0.1);
}
.bom-empty {
color: #888;
padding: 30px;
text-align: center;
line-height: 1.6;
}
.bom-table {
width: 100%;
border-collapse: collapse;
margin-bottom: 16px;
}
.bom-table th,
.bom-table td {
padding: 8px 12px;
border: 1px solid rgba(255, 255, 255, 0.08);
text-align: left;
font-size: 13px;
}
.bom-table th {
background: rgba(255, 255, 255, 0.04);
color: #9aa0a6;
font-weight: 600;
}
.bom-table td {
color: #d0d0d0;
}
.bom-sum-row td {
background: rgba(74, 144, 217, 0.1);
}
.bom-dialog-actions {
display: flex;
gap: 10px;
justify-content: flex-end;
}
.bom-btn-primary {
background: #4a90d9;
color: #fff;
border: none;
border-radius: 6px;
padding: 8px 16px;
cursor: pointer;
font-size: 13px;
}
.bom-btn-primary:hover {
background: #5ba0e9;
}
.bom-btn-secondary {
background: transparent;
color: #9aa0a6;
border: 1px solid rgba(255, 255, 255, 0.15);
border-radius: 6px;
padding: 8px 16px;
cursor: pointer;
font-size: 13px;
}
.bom-btn-secondary:hover {
color: #fff;
border-color: rgba(255, 255, 255, 0.3);
}