diff --git a/system1-factory/web/css/my-monthly-confirm.css b/system1-factory/web/css/my-monthly-confirm.css index 8f788ad..8621deb 100644 --- a/system1-factory/web/css/my-monthly-confirm.css +++ b/system1-factory/web/css/my-monthly-confirm.css @@ -61,13 +61,16 @@ body { max-width: 480px; margin: 0 auto; } .cal-val { font-size: 0.65rem; font-weight: 700; line-height: 1.2; text-align: center; } -/* 셀 상태별 색상 */ +/* 셀 상태별 색상 — 정시=흰색, 연차=노랑, 연장=연보라, 휴무=회색 */ +.cal-cell.normal { background: white; } .cal-cell.normal .cal-val { color: #1f2937; } -.cal-cell.vac .cal-val { color: #059669; } -.cal-cell.off { background: #f9fafb; } +.cal-cell.vac { background: #fefce8; } +.cal-cell.vac .cal-val { color: #92400e; font-weight: 700; } +.cal-cell.off { background: #f3f4f6; } .cal-cell.off .cal-val { color: #9ca3af; font-weight: 500; } -.cal-cell.overtime .cal-val { color: #f59e0b; } -.cal-cell.special { background: #fefce8; } +.cal-cell.overtime { background: #f5f3ff; } +.cal-cell.overtime .cal-val { color: #7c3aed; } +.cal-cell.special { background: #fff7ed; } .cal-cell.special .cal-val { color: #b45309; } .cal-cell.partial .cal-val { color: #6b7280; } .cal-cell.none .cal-val { color: #d1d5db; } @@ -93,7 +96,7 @@ body { max-width: 480px; margin: 0 auto; } /* 연차 현황 */ .mmc-vac-title { font-size: 0.8rem; font-weight: 600; color: #6b7280; margin-bottom: 6px; padding: 0 4px; } -.mmc-vac-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 80px; } +.mmc-vac-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 160px; } .mmc-vac-card { background: white; border-radius: 10px; padding: 12px 8px; text-align: center; box-shadow: 0 1px 3px rgba(0,0,0,0.06); diff --git a/system1-factory/web/js/my-monthly-confirm.js b/system1-factory/web/js/my-monthly-confirm.js index a2297d9..c9c4938 100644 --- a/system1-factory/web/js/my-monthly-confirm.js +++ b/system1-factory/web/js/my-monthly-confirm.js @@ -178,8 +178,12 @@ function renderSummaryCards(records) { if (hrs > 8) overtimeHours += (hrs - 8); if (vacType) { var vd = r.attendance.vacation_days ? parseFloat(r.attendance.vacation_days) : 0; - if (vd > 0) vacDays += vd; - else vacDays += 1; // fallback + if (vd > 0) { vacDays += vd; } + else { + // fallback: vacation_type 이름으로 차감일수 매핑 + var deductMap = { '연차': 1, '반차': 0.5, '반반차': 0.25, '조퇴': 0.75, '병가': 1 }; + vacDays += deductMap[vacType] || 1; + } } }); diff --git a/system1-factory/web/pages/attendance/my-monthly-confirm.html b/system1-factory/web/pages/attendance/my-monthly-confirm.html index 10cdde9..50f6663 100644 --- a/system1-factory/web/pages/attendance/my-monthly-confirm.html +++ b/system1-factory/web/pages/attendance/my-monthly-confirm.html @@ -8,7 +8,7 @@ - +
@@ -106,7 +106,7 @@ - +