feat(view): 교각 목록 and bulk line in the ③ left column (시안 ③)
The ③ screen had no pier list. The left column now has the 교각 목록 with checkboxes and a 배근 status (계산됨 / 오류), the 선택 n기 line with 속성 복사…, then 부재 · 배근 타입. The checks are shared with ① and ②. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1074fdf428
commit
e7f57f0a8a
2 files changed
+19
-3
No files matched your search
+10
-2
@@ -135,8 +135,16 @@
|
||||
</main>
|
||||
|
||||
<main class="grid rebar" id="view-rebar" hidden>
|
||||
<aside class="panel piers" aria-labelledby="rebar-member-title">
|
||||
<p id="rebar-member-title" class="lbl">부재</p>
|
||||
<aside class="panel piers" aria-labelledby="rebar-pier-title">
|
||||
<p id="rebar-pier-title" class="lbl">교각 목록</p>
|
||||
<div class="phead" aria-hidden="true"><span></span><span>교각</span><span>배근</span></div>
|
||||
<ul id="rebar-pier-items" class="pier-items"></ul>
|
||||
<div class="bulk">
|
||||
<b id="rebar-bulk-count">선택 0기</b>
|
||||
<span class="grow"></span>
|
||||
<button id="rebar-bulk-copy" class="btn-o" type="button" disabled>속성 복사…</button>
|
||||
</div>
|
||||
<p id="rebar-member-title" class="lbl members-title">부재 · 배근 타입</p>
|
||||
<ul id="rebar-tabs" class="members"></ul>
|
||||
<p class="pnote">형상은 ② 형상계획 기준입니다. 형상이 바뀌면 "형상 바뀜"으로 표시합니다.</p>
|
||||
</aside>
|
||||
|
||||
+9
-1
@@ -252,7 +252,7 @@ function renderPierList(): void {
|
||||
}
|
||||
|
||||
/** Rows of the pier list. ① shows the type and warnings; ② shows the count of changes from the defaults. */
|
||||
function renderPierRows(list: HTMLUListElement, mode: 'shape' | 'plan'): void {
|
||||
function renderPierRows(list: HTMLUListElement, mode: 'shape' | 'plan' | 'rebar'): void {
|
||||
list.replaceChildren();
|
||||
const visible = state.piers.filter((p) => state.filter === 'all' || p.input.type === state.filter);
|
||||
for (const pier of visible) {
|
||||
@@ -276,6 +276,8 @@ function renderPierRows(list: HTMLUListElement, mode: 'shape' | 'plan'): void {
|
||||
});
|
||||
const badge = mode === 'plan'
|
||||
? el('span', `변경 ${overrideKeys(pier).length}`, 'badge')
|
||||
: mode === 'rebar'
|
||||
? (pier.model ? el('span', '계산됨', 'badge') : el('span', '오류', 'badge error'))
|
||||
: pier.model
|
||||
? el('span', `${pier.input.type}${pier.issues.some((i) => i.level !== 'I') ? ' · 경고' : ''}`, 'badge')
|
||||
: el('span', '오류', 'badge error');
|
||||
@@ -701,6 +703,11 @@ const REBAR_MEMBERS: { id: RebarRow['member']; label: string }[] = [
|
||||
|
||||
function renderRebar(): void {
|
||||
const pier = activePier();
|
||||
// 교각 목록 with the 배근 status (시안 ③). The checks are the same as in ① and ②.
|
||||
renderPierRows($<HTMLUListElement>('rebar-pier-items'), 'rebar');
|
||||
const checked = state.piers.filter((p) => p.checked).length;
|
||||
$('rebar-bulk-count').textContent = `선택 ${checked}기`;
|
||||
$<HTMLButtonElement>('rebar-bulk-copy').disabled = !pier;
|
||||
const tabs = $<HTMLUListElement>('rebar-tabs');
|
||||
tabs.replaceChildren();
|
||||
for (const m of REBAR_MEMBERS) {
|
||||
@@ -1247,6 +1254,7 @@ $<HTMLButtonElement>('dlg-apply').addEventListener('click', applyImport);
|
||||
$<HTMLButtonElement>('regen').addEventListener('click', regenerateChecked);
|
||||
$<HTMLButtonElement>('bulk-regen').addEventListener('click', regenerateChecked);
|
||||
$<HTMLButtonElement>('bulk-copy').addEventListener('click', openCopyDialog);
|
||||
$<HTMLButtonElement>('rebar-bulk-copy').addEventListener('click', openCopyDialog);
|
||||
$<HTMLButtonElement>('nav-shape').addEventListener('click', () => setStage('shape'));
|
||||
$<HTMLButtonElement>('nav-plan').addEventListener('click', () => setStage('plan'));
|
||||
$<HTMLButtonElement>('nav-rebar').addEventListener('click', () => setStage('rebar'));
|
||||
|
||||
Reference in new issue
Block a user