feat(ground): 하상 selectable; 설계홍수위 and 세굴 깊이 for 하상
- shape-options: a per-option "confirmed" flag; 하상 is confirmed, 해상 is not. - The 위치 chips store the choice in the pier's draft; 선택 shows it. - 하상: the groundwater inputs give way to 설계홍수위 DHWL (floodLevelEl) and 세굴 깊이 (scourDepthM). The groundwater value is kept (남겨두기). - Checks: G07 DHWL missing, G08 DHWL below the 지반고, G09 scour negative or the scour line below the footing bottom. The groundwater check is skipped for 하상. - Section: the DHWL as a solid line and the 세굴선 dashed. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7b5517e312
commit
26a5aff517
9 files changed
+163
-45
No files matched your search
@@ -8,6 +8,8 @@ export interface ShapeOption {
|
||||
label: string;
|
||||
/** 굵은 글씨 in the spec: the default that the 1단계 model builds. */
|
||||
isDefault: boolean;
|
||||
/** The rule for this option is confirmed (승인 2026-10-26: 하상), so it can be chosen even if it is not the default. */
|
||||
confirmed?: boolean;
|
||||
}
|
||||
|
||||
export interface ShapeGroup {
|
||||
@@ -17,6 +19,7 @@ export interface ShapeGroup {
|
||||
|
||||
const d = (label: string): ShapeOption => ({ label, isDefault: true });
|
||||
const x = (label: string): ShapeOption => ({ label, isDefault: false });
|
||||
const ok = (label: string): ShapeOption => ({ label, isDefault: false, confirmed: true });
|
||||
|
||||
export const SHAPE_GROUPS: Record<MemberId, ShapeGroup[]> = {
|
||||
bearing: [{ title: '배치', options: [d('분리'), x('일체')] }],
|
||||
@@ -34,14 +37,14 @@ export const SHAPE_GROUPS: Record<MemberId, ShapeGroup[]> = {
|
||||
{ title: '말뚝 종류', options: [d('강관'), x('PHC'), x('복합')] },
|
||||
{ title: '경사말뚝', options: [d('없음'), x('있음')] },
|
||||
],
|
||||
ground: [{ title: '위치', options: [d('육상'), x('하상'), x('해상')] }],
|
||||
ground: [{ title: '위치', options: [d('육상'), ok('하상'), x('해상')] }],
|
||||
};
|
||||
|
||||
export const UNDEFINED_REASON = '규칙 미정 (Q6 확정 전 선택 불가)';
|
||||
|
||||
/** Options currently selectable. Defaults are the only choices today. */
|
||||
/** Options currently selectable: the defaults and the options whose rule is confirmed. */
|
||||
export function isSelectable(option: ShapeOption): boolean {
|
||||
return option.isDefault;
|
||||
return option.isDefault || option.confirmed === true;
|
||||
}
|
||||
|
||||
/** The default summary of a member, e.g. "교좌면 직각 · 하면 직선". */
|
||||
|
||||
Reference in new issue
Block a user