merge: 구조물 패널 후속 수정 4건을 통합한다
This commit is contained in:
@@ -287,8 +287,8 @@ export function createFacilityOptionsForm(
|
||||
extraGroup.root.hidden = true;
|
||||
|
||||
// ── 독립 기슭막이(2026-08-28 이관: 배관처럼 pipe_points 관리) ─────────────
|
||||
// 설치 측은 **컨테이너 밖**(배관의 관종·관경과 같은 층), 벽 제원과 **단 수**는 좌·우
|
||||
// 두 칸이 각자 갖는다(2026-08-30 사용자). 설치 측이 한쪽이면 그 칸만 뜬다.
|
||||
// 설치 측은 **컨테이너 밖**(배관의 관종·관경과 같은 층), 벽 제원은 좌·우 두 칸으로
|
||||
// 나눈다(2026-08-30 사용자). 설치 측이 한쪽이면 그 칸만 뜬다.
|
||||
// 좌·우가 저장 채널(유입/유출) 중 어느 쪽인지는 측점 지형이 정하므로 이름표만
|
||||
// 바꿔 단다(`setRevetSideLabels`) — 값은 언제나 그 채널 키로 오간다.
|
||||
const revetSide = optionalSelect("양쪽", ["양쪽", "좌", "우"]);
|
||||
@@ -511,9 +511,7 @@ export function createFacilityOptionsForm(
|
||||
outletRevet.onChange(emit);
|
||||
revetInlet.fields.onChange(emit);
|
||||
revetOutlet.fields.onChange(emit);
|
||||
[revetSide, revetInlet.tiers, revetOutlet.tiers].forEach((input) =>
|
||||
input.addEventListener("change", emit),
|
||||
);
|
||||
revetSide.addEventListener("change", emit);
|
||||
[
|
||||
pipeMaterial,
|
||||
pipeDiameter,
|
||||
@@ -609,10 +607,6 @@ export function createFacilityOptionsForm(
|
||||
fordHeight.value = text("ford_height_m");
|
||||
fordSlope.value = text("ford_slope_pct");
|
||||
revetSide.value = text("side") || "양쪽";
|
||||
// 단 수 — 좌·우 각자 키가 먼저고, 옛 한 벌 값(`tiers`)이 폴백이다.
|
||||
const legacyTiers = text("tiers") || "1";
|
||||
revetInlet.tiers.value = text("inlet_revet_tiers") || legacyTiers;
|
||||
revetOutlet.tiers.value = text("outlet_revet_tiers") || legacyTiers;
|
||||
const spread = legacyRevetOptions(options);
|
||||
revetInlet.fields.write(spread);
|
||||
revetOutlet.fields.write(spread);
|
||||
@@ -667,16 +661,8 @@ export function createFacilityOptionsForm(
|
||||
wingOutFields.read(options);
|
||||
} else if (current === "revetment") {
|
||||
options.side = revetSide.value;
|
||||
const tierOf = (input: HTMLInputElement): number | null => {
|
||||
const value = Number.parseInt(input.value, 10);
|
||||
return Number.isFinite(value) && value >= 1 ? value : null;
|
||||
};
|
||||
const inletTiers = tierOf(revetInlet.tiers);
|
||||
const outletTiers = tierOf(revetOutlet.tiers);
|
||||
if (inletTiers !== null) options.inlet_revet_tiers = inletTiers;
|
||||
if (outletTiers !== null) options.outlet_revet_tiers = outletTiers;
|
||||
// 옛 한 벌 키도 남긴다 — 서버 `_revet_set`이 아직 이 값을 읽는다.
|
||||
options.tiers = Math.max(inletTiers ?? 1, outletTiers ?? 1);
|
||||
// 단 수는 폼이 갖지 않는다 — 횡단 설계 patch(extra_wall_counts)가 정본이고
|
||||
// 조작은 [추가 기슭막이(단)] 행이 한다(2026-08-30 사용자: 중복이라 삭제).
|
||||
// 좌·우가 각자 값을 갖는다 — 저장 채널은 유입/유출 키 그대로다(2026-08-30).
|
||||
revetInlet.fields.read(options);
|
||||
revetOutlet.fields.read(options);
|
||||
|
||||
@@ -211,8 +211,6 @@ export interface RevetSideGroup {
|
||||
root: HTMLFieldSetElement;
|
||||
legend: HTMLLegendElement;
|
||||
fields: RevetmentFields;
|
||||
/** 단 수(다단) — 좌·우가 각자 갖는다(2026-08-30 사용자). */
|
||||
tiers: HTMLInputElement;
|
||||
/** 조정창 행이 옮겨 붙는 자리 — 배관 유입구·유출구 칸과 같은 규칙. */
|
||||
slot: HTMLElement;
|
||||
}
|
||||
@@ -222,20 +220,19 @@ export function createRevetSideGroup(keys: RevetmentKeys, formDefault: string):
|
||||
const kind = document.createElement("select");
|
||||
kind.replaceChildren(new Option("기슭막이", "기슭막이"));
|
||||
const fields = createRevetmentFields(keys, { ...REVET_COMMON_DEFAULTS, form: formDefault });
|
||||
const tiers = numberInput("1", "1");
|
||||
tiers.value = "1";
|
||||
const slot = document.createElement("div");
|
||||
slot.className = "b05-structure__adjust-slot";
|
||||
box.body.append(
|
||||
grid(labeled("구조", kind), fields.formField),
|
||||
...fields.rows,
|
||||
grid(labeled("단 수(다단)", stepper(tiers, 1))),
|
||||
// 단 수는 여기 두지 않는다 — 조정창에서 옮겨 오는 [추가 기슭막이(단)] 행과
|
||||
// 같은 값이라 두 벌이면 헷갈린다(2026-08-30 사용자).
|
||||
slot,
|
||||
);
|
||||
const legend = box.root.querySelector("legend")!;
|
||||
// 이름표는 좌·우가 정해 준다 — 고른 구조물 이름을 덧붙이지 않는다(2026-08-30).
|
||||
legend.dataset.fixedLabel = "1";
|
||||
return { root: box.root, legend, fields, tiers, slot };
|
||||
return { root: box.root, legend, fields, slot };
|
||||
}
|
||||
|
||||
export interface RevetmentFields {
|
||||
|
||||
Reference in New Issue
Block a user