Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
* M02_MasterTemplete_Labor_MatMarks.ts
|
||||
* 자재목록 세 칸(148-4) — 자재구분(관급 · 사급) · 별도계상(별도계상 · 직접계산) · 운반비(포함 · 미포함)
|
||||
* · 고칠 수 있으면 드롭다운(줄 누름과 따로) · 아니면 글 · 금액 무관
|
||||
* · 빈 칸 = 기본값 표시(162-1 · `MAT_MARK_DEFAULT` · 저장은 비움) · 별도계상이면 운반비 드롭다운 꺼짐(값 그대로)
|
||||
* · 빈 칸 = 기본값 표시(162-1 · `MAT_MARK_DEFAULT` · 저장은 비움) · 운반비는 별도계상과 따로(168-1 · 늘 켬)
|
||||
* · 사용자 자재 = 줄 덧칸 · 로직 자재 = 로직 줄 `자재표시 {호표 차례: 세 칸}`(`Labor_Api` 정리 · 서버 `clean`)
|
||||
* ========================================================================== */
|
||||
|
||||
@@ -39,8 +39,7 @@ export function markCells(
|
||||
value: MatMarks,
|
||||
set?: (key: MatMarkKey, v: string) => void,
|
||||
): HTMLElement[] {
|
||||
const picks: Partial<Record<MatMarkKey, HTMLSelectElement>> = {};
|
||||
const cells = KEYS.map((key) => {
|
||||
return KEYS.map((key) => {
|
||||
const now = value[key] ?? MAT_MARK_DEFAULT[key];
|
||||
const attrs = { "data-label": tc(HEAD[key]), "data-mat-mark": key };
|
||||
if (!set) return el("td", { className: "m02-labrow__mark", text: tc(WORD[now]), attrs });
|
||||
@@ -49,21 +48,11 @@ export function markCells(
|
||||
value: now,
|
||||
compact: true,
|
||||
ariaLabel: tc(HEAD[key]),
|
||||
onChange: (v) => {
|
||||
set(key, v);
|
||||
if (key === "별도계상") haulOff(v);
|
||||
},
|
||||
onChange: (v) => set(key, v),
|
||||
});
|
||||
picks[key] = pick.select;
|
||||
pick.root.addEventListener("click", (e) => e.stopPropagation()); // 줄 누름과 따로
|
||||
return el("td", { className: "m02-labrow__mark", attrs, children: [pick.root] });
|
||||
});
|
||||
// 별도계상이면 운반비 꺼짐 — 값은 그대로
|
||||
const haulOff = (sep: string) => {
|
||||
if (picks.운반비) picks.운반비.disabled = sep === "별도계상";
|
||||
};
|
||||
haulOff(value.별도계상 ?? MAT_MARK_DEFAULT.별도계상);
|
||||
return cells;
|
||||
}
|
||||
|
||||
/** 한 칸 바꿈 — 빈 값 = 칸 지움 */
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
- 기준합 · 반영합 그대로 · 저장 왕복에 남음 · 화면 `normalizeLabor` 도 같은 규칙(Node 헬퍼)
|
||||
- 화면 칸 부품 = 새 파일 · 사용자 줄 · 로직 줄 같은 칸 · 사전조합 줄엔 안 넘김(소스 검사)
|
||||
- 162-1 = 「일반」 지움(관급 · 사급) · 빈 칸 = 읽을 때 기본(사급 · 별도계상 · 포함 · 저장은 비움) ·
|
||||
옛 「일반」 = 사급으로 읽음 · 별도계상이면 운반비 드롭다운 꺼짐(값 그대로)
|
||||
옛 「일반」 = 사급으로 읽음
|
||||
- 168-1 = 운반비 드롭다운 늘 켬(별도계상과 따로 · 각자 저장)
|
||||
"""
|
||||
|
||||
import json
|
||||
@@ -153,12 +154,12 @@ def test_옛_일반은_사급으로_읽음():
|
||||
assert labor.mark_of({"자재구분": "일반"}, "자재구분") == "사급"
|
||||
|
||||
|
||||
def test_화면_기본값_한_벌_운반비_꺼짐():
|
||||
def test_화면_기본값_한_벌_운반비_늘_켬():
|
||||
api = _src("M02_MasterTemplete_Labor_Api.ts")
|
||||
for key, v in labor.MARK_DEFAULT.items():
|
||||
assert f'{key}: "{v}",' in api.split("MAT_MARK_DEFAULT")[1].split("};")[0]
|
||||
marks = _src("M02_MasterTemplete_Labor_MatMarks.ts")
|
||||
assert "value[key] ?? MAT_MARK_DEFAULT[key]" in marks
|
||||
assert 'picks.운반비.disabled = sep === "별도계상"' in marks
|
||||
assert "haulOff(value.별도계상 ?? MAT_MARK_DEFAULT.별도계상)" in marks
|
||||
assert "disabled" not in marks and "haulOff" not in marks # 별도계상과 따로
|
||||
assert "onChange: (v) => set(key, v)," in marks # 칸마다 제 값만 저장
|
||||
assert '일반: "Mark_General"' not in marks
|
||||
|
||||
Reference in New Issue
Block a user