refactor(plan): 형상계획 ②의 교대 기본 정보 입력칸 제거, 삽도에 EL 표시

- ②의 교대 편집 영역에서 기본 정보 6칸과 기본값 복원 버튼을 뺌. 기본 정보 편집과 복원은 ①에만 남김
- ②의 삽도에 교좌면·기초 하단·지반고 값을 읽기 전용 라벨로 표시 (abut-section-svg.ts의 AbutLevels)
- 날개벽 형식은 ②의 날개벽 카드에 그대로 둠
- 테스트 631건 통과, 타입 검사·빌드 통과. 브라우저 시각 확인은 미실시

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-11-03 15:31:54 +09:00
1 parent 18524460e8
commit 789f62adf0
3 files changed
+25 -6

No files matched your search

+10 -4
View File
@@ -693,13 +693,19 @@ function fillAbutSlot(slot: (typeof ABUT_SLOTS)[keyof typeof ABUT_SLOTS], rec: A
const msg = $<HTMLParagraphElement>(slot.msg);
basic.replaceChildren();
// ② puts the wing forms in their own card; ① keeps them in the basic items.
const wingBox = 'wing' in slot ? $<HTMLDivElement>(slot.wing) : basic;
// ② (plan card) shows no basic items: they are edited in ① only, and ② reads them off the 삽도 labels (2026-11-03).
const planCard = 'wing' in slot;
const wingBox = planCard ? $<HTMLDivElement>(slot.wing) : basic;
wingBox.replaceChildren();
bearings.replaceChildren();
shape.replaceChildren();
// 삽도 (벽체·흉벽 개략 단면): the values it names are the card's values, so the drawing follows each change.
const drawing = el('div', undefined, 'abut-section');
drawing.innerHTML = abutSectionSvg(resolveShape(rec.shape), { ...ABUT_SHAPE_DEFAULT, ...(rec.shape ?? {}) });
drawing.innerHTML = abutSectionSvg(
resolveShape(rec.shape),
{ ...ABUT_SHAPE_DEFAULT, ...(rec.shape ?? {}) },
{ seatEl: rec.seatEl, footingBottomEl: rec.foundationBottomEl, groundEl: rec.groundEl },
);
shape.append(drawing);
msg.textContent = '';
const apply = (next: AbutRecord) => {
@@ -721,7 +727,7 @@ function fillAbutSlot(slot: (typeof ABUT_SLOTS)[keyof typeof ABUT_SLOTS], rec: A
};
const idOf = (suffix: string) => `${slot.prefix}-${rec.name}-${suffix}`;
for (const f of ABUT_EDIT_FIELDS) {
for (const f of planCard ? [] : ABUT_EDIT_FIELDS) {
const id = idOf(f.key);
const lab = el('label', `${f.label}${f.unit ? ` (${f.unit})` : ''}`);
lab.htmlFor = id;
@@ -752,7 +758,7 @@ function fillAbutSlot(slot: (typeof ABUT_SLOTS)[keyof typeof ABUT_SLOTS], rec: A
const def = state.abutDefaults.find((a) => a.name === rec.name);
if (def) apply(restoreAbutDefault(def));
});
basic.appendChild(restore);
if (!planCard) basic.appendChild(restore);
for (const b of rec.bearings) {
const zId = idOf(`bz-${b.no}`);