fix(monthly-comparison): 0일 0h 수정 + 관리자 검토 태깅
- getAllStatus: daily_attendance_records JOIN으로 실제 근무일/시간 집계 - vacation_days: vacation_types.deduct_days SUM (반차 0.5 정확 반영) - admin_checked 컬럼 + POST /admin-check API (upsert 패턴) - 상태 뱃지 라벨: 미검토/확인요청/수정요청/반려/확인완료 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -361,9 +361,9 @@ function renderWorkerList(workers) {
|
||||
}
|
||||
|
||||
el.innerHTML = filtered.map(w => {
|
||||
const statusBadge = `<span class="mc-worker-status-badge ${w.status}">${
|
||||
{ confirmed: '확인완료', pending: '미확인', rejected: '반려' }[w.status] || ''
|
||||
}</span>`;
|
||||
const statusLabels = { confirmed: '확인완료', pending: '미검토', review_sent: '확인요청', change_request: '수정요청', rejected: '반려' };
|
||||
const statusBadge = `<span class="mc-worker-status-badge ${w.status}">${statusLabels[w.status] || ''}</span>`;
|
||||
const checkedBadge = w.admin_checked ? ' <span style="color:#10b981;font-size:0.7rem;">✓검토</span>' : '';
|
||||
const mismatchBadge = w.mismatch_count > 0
|
||||
? `<span class="mc-worker-mismatch">⚠️ 불일치${w.mismatch_count}</span>` : '';
|
||||
const rejectReason = w.status === 'rejected' && w.reject_reason
|
||||
@@ -374,7 +374,7 @@ function renderWorkerList(workers) {
|
||||
<div class="mc-worker-card" onclick="viewWorkerDetail(${w.user_id})">
|
||||
<div style="display:flex;justify-content:space-between;align-items:center">
|
||||
<div>
|
||||
<div class="mc-worker-name">${escHtml(w.worker_name)} ${mismatchBadge}</div>
|
||||
<div class="mc-worker-name">${escHtml(w.worker_name)}${checkedBadge} ${mismatchBadge}</div>
|
||||
<div class="mc-worker-dept">${escHtml(w.department_name)} · ${escHtml(w.job_type)}</div>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right text-gray-300"></i>
|
||||
|
||||
Reference in New Issue
Block a user