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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user