From 1340918f8e50741d595fcf1147cd4f1cc0d0f30d Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Wed, 1 Apr 2026 07:42:03 +0900 Subject: [PATCH] =?UTF-8?q?fix(monthly-confirm):=20=EC=85=80=20=EC=83=89?= =?UTF-8?q?=EC=83=81=20=EA=B0=9C=EC=84=A0=20+=20=EC=97=B0=EC=B0=A8?= =?UTF-8?q?=EC=9D=BC=EC=88=98=20=EB=B2=84=EA=B7=B8=20+=20=EC=97=AC?= =?UTF-8?q?=EB=B0=B1=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 정시=흰색, 연차=노랑, 연장=연보라, 휴무=회색, 특근=주황 - 반차 0.5일/반반차 0.25일 정확히 계산 (fallback deductMap) - 연차현황 하단 여백 80→160px (버튼 겹침 방지) Co-Authored-By: Claude Opus 4.6 (1M context) --- system1-factory/web/css/my-monthly-confirm.css | 15 +++++++++------ system1-factory/web/js/my-monthly-confirm.js | 8 ++++++-- .../web/pages/attendance/my-monthly-confirm.html | 4 ++-- 3 files changed, 17 insertions(+), 10 deletions(-) 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 @@ - +