feat(design): 노면공 콘크리트 포장 명세 컨테이너 · 기타 상세 종류 이름(표 08 · 52-10)
- 콘크리트 포장 = 기준 측점 + 필수 컨테이너 「상세 내용」(포장사양 고르기 · 높이 m 손 입력) · 구조물 조합 잇기 - 포장사양 선택지는 명세 한 곳(PAVE_SPEC_CHOICES · 지금 콘크리트 하나) · 새 키 pave_spec · height_m - 구간 길이 · 전 · 후는 정의 칸 그대로 · 표에 없는 옛 상세 칸(두께 · 폭 · 확폭 · 줄눈 · 비닐 · 철망)은 화면에서 빼고 지난 정의 값으로 보존 - 일반 구조물(structures.json)도 명세 폼을 옵션 칸 아래에 그림(B05_Profile_UI_Structures_Spec) · 잠금은 옵션 칸을 따름 · [수정] 병합은 명세 키를 다시 씀 - 기타 이름 칸 = 「상세 종류 이름」(정의 판 8 · 이력 판_7) · 목록 이름으로 씀 · 종류 단위 잇기 그대로 - 시험: test_52_10_structure_spec_road · 헬퍼 road · ui_checks/52-10_노면공_기타(B05 · B06 같음 · 되돌림) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015KYZ2HWWdUwZWYnn3tQz7X
This commit is contained in:
@@ -18,6 +18,7 @@ import type { FacilityAttributes, FacilityOptionsForm } from "./B05_Profile_UI_D
|
||||
import type { StationFields } from "./B05_Profile_UI_Structures_Fields";
|
||||
import { splitPavementRange } from "./B05_Profile_UI_Structures_Pavement";
|
||||
import { mergeStructureOptions } from "./B05_Profile_UI_Structures_Summary";
|
||||
import { readStructureSpec, specRenderedKeys } from "./B05_Profile_UI_Structures_Spec";
|
||||
import type { GroupBoxes } from "./B05_Profile_UI_Structures_Groups";
|
||||
import {
|
||||
readGroupItems,
|
||||
@@ -40,6 +41,8 @@ export interface StructuresCommitContext {
|
||||
startFields: StationFields;
|
||||
endFields: StationFields;
|
||||
facilityOptions: FacilityOptionsForm;
|
||||
/** 옵션 칸 — 짝 명세 폼(52-10)을 찾는 열쇠. */
|
||||
optionRow: HTMLElement;
|
||||
optionInputs: Array<{
|
||||
key: string;
|
||||
required: boolean;
|
||||
@@ -205,7 +208,7 @@ export function readOptions(ctx: StructuresCommitContext): Record<string, string
|
||||
if (input.isEmpty()) return;
|
||||
values[input.key] = input.read();
|
||||
});
|
||||
return values;
|
||||
return { ...values, ...readStructureSpec(ctx.optionRow, ctx.currentType()) };
|
||||
}
|
||||
|
||||
export function emit(ctx: StructuresCommitContext): void {
|
||||
@@ -369,7 +372,11 @@ export async function commit(ctx: StructuresCommitContext, live = false): Promis
|
||||
options: mergeStructureOptions(
|
||||
previous,
|
||||
type.type_id,
|
||||
[...ctx.optionInputs.map((entry) => entry.key), ...ctx.groupBoxes.shapeKeys()],
|
||||
[
|
||||
...ctx.optionInputs.map((entry) => entry.key),
|
||||
...ctx.groupBoxes.shapeKeys(),
|
||||
...specRenderedKeys(type, previous.options), // 명세 폼 키(52-10) — 비운 칸 · 뺀 컨테이너는 지움
|
||||
],
|
||||
records[0].options,
|
||||
),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user