fix(tkfb): 연간 연차 현황 소수점 2자리 표시 + blur 포맷팅

- input value에 .toFixed(2) 적용 (이월/정기연차/장기근속/경조사)
- onblur 핸들러로 수정 후에도 소수점 2자리 유지
- step 0.5 → 0.25로 변경 (0.25일 단위 입력 가능)
- 총 사용 '-' 표시 → 0.00으로 통일

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-30 08:45:16 +09:00
parent afb63e4e94
commit c769fa040d

View File

@@ -488,21 +488,24 @@
<td class="worker-name">${w.worker_name}</td>
<td>
<input type="number" class="num-input ${carryover < 0 ? 'negative' : ''}"
value="${carryover}" step="0.5"
value="${carryover.toFixed(2)}" step="0.25"
data-field="carryover"
onchange="updateField(${w.user_id}, 'carryover', this.value)">
onchange="updateField(${w.user_id}, 'carryover', this.value)"
onblur="this.value=parseFloat(this.value||0).toFixed(2)">
</td>
<td>
<input type="number" class="num-input"
value="${annual}" step="0.5"
value="${annual.toFixed(2)}" step="0.25"
data-field="annual"
onchange="updateField(${w.user_id}, 'annual', this.value)">
onchange="updateField(${w.user_id}, 'annual', this.value)"
onblur="this.value=parseFloat(this.value||0).toFixed(2)">
</td>
<td>
<input type="number" class="num-input"
value="${longService}" step="0.5"
value="${longService.toFixed(2)}" step="0.25"
data-field="longService"
onchange="updateField(${w.user_id}, 'longService', this.value)">
onchange="updateField(${w.user_id}, 'longService', this.value)"
onblur="this.value=parseFloat(this.value||0).toFixed(2)">
</td>
<td>
<button class="special-btn" onclick="openSpecialModal(${w.user_id}, '${w.worker_name}')">
@@ -511,7 +514,7 @@
</button>
</td>
<td style="font-weight:600;color:#059669;">${totalGenerated.toFixed(2)}</td>
<td style="color:#6b7280;">${totalUsed > 0 ? totalUsed.toFixed(2) : '-'}</td>
<td style="color:#6b7280;">${totalUsed.toFixed(2)}</td>
<td class="remaining ${remainingClass}">${remaining.toFixed(2)}</td>
</tr>
`;
@@ -553,7 +556,7 @@
const cells = row.querySelectorAll('td');
cells[6].textContent = totalGenerated.toFixed(2);
cells[7].textContent = totalUsed > 0 ? totalUsed.toFixed(2) : '-';
cells[7].textContent = totalUsed.toFixed(2);
cells[8].textContent = remaining.toFixed(2);
cells[8].className = `remaining ${remaining > 0 ? 'positive' : remaining < 0 ? 'negative' : 'zero'}`;
}
@@ -592,8 +595,9 @@
<option value="${st.code}" ${s.type === st.code ? 'selected' : ''}>${st.name}</option>
`).join('')}
</select>
<input type="number" value="${s.days}" step="0.5" min="0"
onchange="updateSpecialDays(${idx}, this.value)">
<input type="number" value="${parseFloat(s.days).toFixed(2)}" step="0.25" min="0"
onchange="updateSpecialDays(${idx}, this.value)"
onblur="this.value=parseFloat(this.value||0).toFixed(2)">
<span>일</span>
<button class="delete-btn" onclick="deleteSpecialItem(${idx})">삭제</button>
</div>