Files
Aislo/A00_Common/design/design_structure_road.ts
T
eomsangdonandClaude Opus 5.5 6f1d0508a2 feat(design): 공용 틀 선택 컨테이너 「하나만」 표시(max) — 물넘이 포장 도수로/돌붙임 · 기타 상세 내용(52-17)
- 명세 컨테이너 칸 max — 차면 [추가] 숨김 · 빼면 다시 보임 · 옛 저장이 넘쳐도 다 보이고 지우지 않음
- 물넘이 포장 chute · 기타 detail = max 1 · 배관 흙막이 추가 · 도수로/돌붙임은 여러 개 그대로
- 시험: test_52_17_single_container · 헬퍼 max · ui_checks 52-3 · 52-10 을 하나만 흐름으로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
2026-10-06 00:50:55 +09:00

64 lines
2.2 KiB
TypeScript

/* =============================================================================
* design_structure_road.ts
* 노면공 › 콘크리트 포장 명세 — 사용자 구조물 표 08(`docs/raw/구조물정의_표/08_사토장_토취장_노면공_기타.md`).
*
* 기준 측점(패널 위치 칸) + 필수 컨테이너 「상세 내용」 한 벌 = 포장사양 고르기 · 높이(m) 손 입력.
* 구간 길이 · 전 · 후는 정의 옵션 칸 그대로(구간 배치) · 표에 없는 옛 상세 칸은 화면에서 빼고 값은 남김.
* 저장 = structures.json `options` — 새 키 `pave_spec` · `height_m`.
* 기타(52-14) = 기준 측점 + 상세 종류 이름(정의 옵션 칸 `name`) + 선택 컨테이너 「상세 내용」(비고 글) ·
* 저장 키 `etc_detail_{n}_note` · 잇기 `getcdetail{n}`.
* import 없음 — 시험이 이 파일만 옮겨 돌림.
* ========================================================================== */
import type { SpecChoice, StructureSpec } from "./design_structure_spec";
/** 포장사양 선택지 — 표의 나머지 값은 사용자 답 뒤 여기에만 더함. */
export const PAVE_SPEC_CHOICES: SpecChoice[] = [{ value: "콘크리트", label: "콘크리트" }];
export const PAVEMENT_SPEC: StructureSpec = {
typeId: "pavement_concrete",
containers: [
{
id: "detail",
title: "상세 내용",
required: true,
link: "gpavedetail",
items: [
{
id: "spec",
label: "포장사양",
kind: "select",
key: "pave_spec",
choices: PAVE_SPEC_CHOICES,
},
{ id: "height", label: "높이 (m)", kind: "number", key: "height_m", step: 0.05 },
],
},
],
// 표 08 에 없는 옛 상세 칸 — 화면에서 빼고 값은 남김(지난 정의 값)
retired: [
"thickness_cm",
"width_m",
"widening_area_m2",
"joint_spacing_m",
"separation_sheet",
"wire_mesh",
],
};
export const ETC_SPEC: StructureSpec = {
typeId: "etc",
containers: [
{
id: "detail",
title: "상세 내용",
required: false,
prefix: "etc_detail",
link: "getcdetail",
max: 1,
items: [{ id: "note", label: "비고", kind: "text" }],
},
],
retired: [],
};