feat: QMS 체크리스트 템플릿 관리 및 견적/리스트 개선

- QMS 체크리스트 템플릿 에디터 추가 (ChecklistTemplateEditor)
- AuditSettingsPanel, Day1DocumentSection 기능 확장
- 견적 등록(QuoteRegistration) 개선
- IntegratedListTemplateV2 수정
- 건설 카테고리 actions 수정
This commit is contained in:
유병철
2026-03-11 11:06:10 +09:00
parent 81affdc441
commit e9ac2470e1
10 changed files with 1382 additions and 132 deletions

View File

@@ -977,8 +977,8 @@ export function IntegratedListTemplateV2<T = any>({
showActions={tableColumns.some(col => col.key === 'actions')}
/>
) : (
<Table className="table-fixed">
{columnSettings && (
<Table className={columnSettings && Object.keys(columnSettings.columnWidths).length > 0 ? "table-fixed" : "table-auto [&_td]:whitespace-nowrap [&_th]:whitespace-nowrap"}>
{columnSettings && Object.keys(columnSettings.columnWidths).length > 0 && (
<colgroup>
{showCheckbox && <col style={{ width: 50 }} />}
{tableColumns.map((col) => (
@@ -1046,6 +1046,24 @@ export function IntegratedListTemplateV2<T = any>({
e.preventDefault();
const th = (e.target as HTMLElement).parentElement;
if (!th) return;
// 첫 리사이즈 시 모든 컬럼의 현재 너비를 스냅샷 저장
// → table-auto → table-fixed 전환 시 다른 컬럼 크기 유지
if (Object.keys(columnSettings.columnWidths).length === 0) {
const headerRow = th.parentElement;
if (headerRow) {
const allThs = headerRow.querySelectorAll('th');
const offset = showCheckbox ? 1 : 0;
allThs.forEach((cell, idx) => {
if (idx < offset) return;
const colKey = tableColumns[idx - offset]?.key;
if (colKey) {
columnSettings.onColumnResize(colKey, cell.offsetWidth);
}
});
}
}
const startX = e.clientX;
const startWidth = th.offsetWidth;
const onMouseMove = (ev: MouseEvent) => {