feat(799-1): 수식 탭 단가산출 소계 · 끝수 · 합계 — 블록마다 노 · 재 · 경 소계 보이기만(금액 그대로)

- 서버 master_equation.subtotals — 호표 줄(하위 로직 블록 한 줄씩 · 자원 · 덧줄)의 버린 줄 비목 + 끝수(합계 − 줄 합)
- 부품 ui_template_equation_sum — 줄 이음 아래 소계 표(M01 · M02 수식 탭 같이)
- 시험 test_799_1_subtotals — 줄 합 + 끝수 = 합계 · 합계 = 엔진 끝수 입힌 비목 합(전후 같음)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-07 12:29:26 +09:00
co-authored by Claude Sonnet 5.5
parent b608d2aa3d
commit d13b5b1753
6 changed files with 235 additions and 1 deletions
@@ -15,6 +15,7 @@ import { createBanner } from "@ui/ui_template_banner";
import { createBadge } from "@ui/ui_template_badge";
import { createButton, createIconButton } from "@ui/ui_template_button";
import { createEqChain } from "@ui/ui_template_equation_line";
import { createEqSum } from "@ui/ui_template_equation_sum";
import { eqText, type EqLine, type EqTree, type EqVarRow } from "@ui/ui_template_equation";
import {
el,
@@ -457,6 +458,7 @@ export function createLabEquation(opt: LabEquationOptions) {
return;
}
const edit = canEdit();
const sum = createEqSum(eq);
body.replaceChildren(
createEqChain(eq.줄, {
path: "",
@@ -472,6 +474,7 @@ export function createLabEquation(opt: LabEquationOptions) {
onVar: edit ? varDialog : undefined,
slot: edit ? editor : undefined,
}),
...(sum ? [sum] : []), // 799-1 소계 · 끝수 · 합계
);
}