feat(view): attribute-copy dialog (시안 ⑥, plan C8)

- 속성 복사… opens the four-step dialog: source (current inputs), items,
  targets (same-type filter on by default), and a preview with changed values
  and skipped items per target. Apply changes only the visible, ticked targets.
- Items that the model does not have yet (기둥, 받침, 배근, 기초 형상) are shown
  as 예정 and disabled. Coping length and pile length are off by default.
- Option: regenerate the targets right after applying (default on); otherwise
  they show as 재생성 필요 through the normal change tracking.
- Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-22 10:01:18 +09:00
1 parent 4accf1f3be
commit f75431d898
3 files changed
+184

No files matched your search

+55
View File
@@ -246,6 +246,61 @@
</footer>
</dialog>
<dialog id="copy-dialog" aria-labelledby="cp-title">
<header class="dlg-head">
<h2 id="cp-title">속성 복사</h2>
<p class="muted small">한 교각의 설정을 여러 교각에 한 번에 적용합니다</p>
<button id="cp-close" class="btn small" type="button">닫기</button>
</header>
<div class="dlg-body">
<div class="dlg-col">
<section>
<h3>1 · 원본 교각</h3>
<p id="cp-source" class="num"></p>
<p class="muted small">현재 입력값 기준 (미반영 변경 포함)</p>
</section>
<section>
<h3>2 · 복사할 항목</h3>
<ul class="cp-items">
<li><span class="cp-group">코핑</span>
<label class="chk"><input type="checkbox" data-item="coping-width" />폭 B</label>
<label class="chk"><input type="checkbox" data-item="coping-length" />길이 L <span class="muted small">교각마다 다름 · 기본 해제</span></label>
</li>
<li><span class="cp-group">확대기초 · 말뚝</span>
<label class="chk"><input type="checkbox" data-item="pile-length" />말뚝 길이 <span class="muted small">지반마다 다름 · 기본 해제</span></label>
<label class="chk disabled"><input type="checkbox" disabled />기초 형상 · 치수 · 버림 <span class="muted small">예정</span></label>
</li>
<li><span class="cp-group">기둥 · 받침 · 철근배근</span>
<label class="chk disabled"><input type="checkbox" disabled />기둥 단면 · 지름 D, 받침·받침블럭, 배근 <span class="muted small">예정</span></label>
</li>
</ul>
<p class="muted small">복사하지 않는 값: 좌표 · IP · 받침 EL · 코핑 상면 EL · 기초 하단 EL · 지반고 · 기둥 높이 · 말뚝 선단 EL · 계단 구간</p>
</section>
<section>
<h3>3 · 대상 교각</h3>
<label class="chk"><input id="cp-same-type" type="checkbox" checked />원본과 같은 형식만 보기</label>
<ul id="cp-targets" class="cp-targets"></ul>
</section>
</div>
<div class="dlg-col">
<section>
<h3>4 · 적용 미리보기</h3>
<table id="cp-preview" class="grid-table">
<thead><tr><th>대상</th><th>형식</th><th>바뀌는 값</th><th>건너뜀</th><th>내용</th></tr></thead>
<tbody></tbody>
</table>
<label class="chk"><input id="cp-regen" type="checkbox" checked />적용 후 대상 교각 형상까지 바로 다시 생성</label>
<p class="muted small">적용하면 대상 교각마다 "변경 n건"이 표시되고, 입력 수정 카드에서 항목별로 되돌릴 수 있습니다.</p>
</section>
</div>
</div>
<footer class="dlg-foot">
<span id="cp-summary" class="muted"></span>
<button id="cp-cancel" class="btn" type="button">취소</button>
<button id="cp-apply" class="btn-p" type="button" disabled>대상 0기에 적용</button>
</footer>
</dialog>
<script type="module" src="/src/main.ts"></script>
</body>
</html>