From 9a338614a6411aa46aab967c46685504f46a8aa6 Mon Sep 17 00:00:00 2001 From: ypshim Date: Tue, 27 Oct 2026 16:41:13 +0900 Subject: [PATCH] =?UTF-8?q?refactor(copy):=20=EC=86=8D=EC=84=B1=20?= =?UTF-8?q?=EB=B3=B5=EC=82=AC=EC=9D=98=20=EC=9B=90=EB=B3=B8=20=EC=84=B9?= =?UTF-8?q?=EC=85=98=20=EC=A0=9C=EA=B1=B0,=20=EB=AF=B8=EB=A6=AC=EB=B3=B4?= =?UTF-8?q?=EA=B8=B0=20=ED=91=9C=EB=A5=BC=20=EB=8C=80=EC=83=81=EB=B3=84=20?= =?UTF-8?q?=ED=95=9C=20=EC=A4=84=20=EC=9A=94=EC=95=BD=EC=9C=BC=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 원본 교각은 패널 제목 아래 한 줄로 옮김 (별도 섹션 없음) - 적용 미리보기 표를 "교각 · 바뀌는 값 · 건너뜀" 한 줄 요약으로 바꿈 (고른 교각만) - 섹션 번호: 1 대상 교각, 2 복사할 항목, 3 변경 요약 Co-Authored-By: Claude Haiku 5.5 --- index.html | 19 ++++++------------- src/main.ts | 15 ++++----------- src/style.css | 3 +++ 3 files changed, 13 insertions(+), 24 deletions(-) diff --git a/index.html b/index.html index 21161fc..56c7a7c 100644 --- a/index.html +++ b/index.html @@ -151,17 +151,13 @@

속성 복사

-

기준 교각의 설정을 다른 교각에 한 번에 적용합니다

+

+

기준 교각의 설정을 고른 교각에만 적용합니다 · 현재 입력값 기준 (미반영 변경 포함)

-

1 · 원본 교각

-

-

현재 입력값 기준 (미반영 변경 포함)

-
-
-

2 · 대상 교각

+

1 · 대상 교각

@@ -171,7 +167,7 @@

고른 교각에만 적용합니다. 고르지 않은 교각은 바뀌지 않습니다. 모델이 없는 교각은 고를 수 없습니다.

-

3 · 복사할 항목

+

2 · 복사할 항목

복사하지 않는 값: 좌표 · IP · 받침 EL · 코핑 상면 EL · 기초 하단 EL · 지반고 · 기둥 높이 · 말뚝 선단 EL · 계단 구간

@@ -179,11 +175,8 @@
-

4 · 적용 미리보기 (고른 교각만)

- - - -
대상형식바뀌는 값건너뜀내용
+

3 · 변경 요약 (고른 교각만)

+

적용하면 대상 교각마다 "변경 n건"이 표시되고, 입력 수정 카드에서 항목별로 되돌릴 수 있습니다.

diff --git a/src/main.ts b/src/main.ts index b7b5985..c6370da 100644 --- a/src/main.ts +++ b/src/main.ts @@ -700,8 +700,8 @@ function renderCopyTargets(): void { function renderCopyPreview(): void { const src = activePier(); const items = chosenCopyItems(); - const body = $('cp-preview').tBodies[0]; - body.replaceChildren(); + const box = $('cp-preview'); + box.replaceChildren(); let applied = 0; let skippedTotal = 0; const selected = selectedCopyTargets(); @@ -712,15 +712,8 @@ function renderCopyPreview(): void { const skipped = plan.skipped.map((k) => k.reason); skippedTotal += skipped.length; if (plan.changes.length) applied++; - const row = el('tr'); - row.append( - el('td', t.input.name), - el('td', t.input.type), - el('td', String(plan.changes.length)), - el('td', String(skipped.length)), - el('td', [...labels, ...skipped].join(' · ') || '바뀌는 값 없음'), - ); - body.appendChild(row); + const detail = [...labels, ...skipped.map((r) => `건너뜀: ${r}`)].join(' · ') || '바뀌는 값 없음'; + box.appendChild(el('p', `${t.input.name} · ${detail}`, 'cp-line')); } const n = selected.length; $('cp-summary').textContent = `${src?.input.name ?? ''} → ${n}기 · 항목 ${items.length}개 · 건너뜀 ${skippedTotal}건`; diff --git a/src/style.css b/src/style.css index e67f42a..f27de84 100644 --- a/src/style.css +++ b/src/style.css @@ -821,6 +821,9 @@ body { background: #eef1f4; font-family: 'Noto Sans KR', system-ui, sans-serif; /* Import preview: all piers' 받침·IP rows scroll inside the dialog. */ .pv-scroll { max-height: 240px; overflow: auto; } +/* 속성 복사: one line per target in the change summary. */ +.copy-panel .cp-line { margin: 2px 0; font-size: 12px; } + /* 속성 복사: an inline panel at the bottom of the 부재별 편집창 (was a modal dialog). */ .copy-panel { margin-top: 12px; border-top: 1px solid #d5dde6; padding-top: 10px; } .copy-panel .copy-head h3 { margin: 0 0 4px; font-size: 13px; }