From 549e78ba61ff540c9b539fd52de547b1eb82bb5f Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Mon, 30 Mar 2026 09:27:53 +0900 Subject: [PATCH] =?UTF-8?q?fix(tkfb):=20=EC=97=B0=EC=B0=A8=20=EC=86=8C?= =?UTF-8?q?=EC=88=98=EC=A0=90=20=ED=91=9C=EC=8B=9C=20=EA=B0=9C=EC=84=A0=20?= =?UTF-8?q?=E2=80=94=20=EC=A0=95=EC=88=98=EB=A9=B4=2017,=20=EC=86=8C?= =?UTF-8?q?=EC=88=98=EB=A9=B4=200.75?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DB: vacation_balance_details DECIMAL(4,1) → DECIMAL(5,2)로 변경 (0.25 단위 지원) - 표시: fmtNum() — 정수면 소수점 없이 (17), 소수면 2자리 (0.75) - onblur 포맷팅도 동일 규칙 적용 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../web/pages/attendance/annual-overview.html | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/system1-factory/web/pages/attendance/annual-overview.html b/system1-factory/web/pages/attendance/annual-overview.html index c82a08a..2bb428c 100644 --- a/system1-factory/web/pages/attendance/annual-overview.html +++ b/system1-factory/web/pages/attendance/annual-overview.html @@ -354,6 +354,12 @@ }, 50); })(); + // 숫자 포맷: 정수면 소수점 없이, 소수면 2자리 + function fmtNum(v) { + const n = parseFloat(v) || 0; + return n % 1 === 0 ? n.toString() : n.toFixed(2); + } + // 전역 변수 let workers = []; let currentYear = new Date().getFullYear(); @@ -488,24 +494,24 @@ ${w.worker_name} + onblur="var n=parseFloat(this.value||0);this.value=n%1===0?n.toString():n.toFixed(2)"> + onblur="var n=parseFloat(this.value||0);this.value=n%1===0?n.toString():n.toFixed(2)"> + onblur="var n=parseFloat(this.value||0);this.value=n%1===0?n.toString():n.toFixed(2)"> - ${totalGenerated.toFixed(2)} - ${totalUsed.toFixed(2)} - ${remaining.toFixed(2)} + ${fmtNum(totalGenerated)} + ${fmtNum(totalUsed)} + ${fmtNum(remaining)} `; }).join(''); @@ -555,9 +561,9 @@ const remaining = totalGenerated - totalUsed; const cells = row.querySelectorAll('td'); - cells[6].textContent = totalGenerated.toFixed(2); - cells[7].textContent = totalUsed.toFixed(2); - cells[8].textContent = remaining.toFixed(2); + cells[6].textContent = fmtNum(totalGenerated); + cells[7].textContent = fmtNum(totalUsed); + cells[8].textContent = fmtNum(remaining); cells[8].className = `remaining ${remaining > 0 ? 'positive' : remaining < 0 ? 'negative' : 'zero'}`; } @@ -595,9 +601,9 @@ `).join('')} - + onblur="var n=parseFloat(this.value||0);this.value=n%1===0?n.toString():n.toFixed(2)">