feat(dashboard): 연차/연장근로 통합 + 연차 상세 모달

- 백엔드: type_code ANNUAL 매칭 실패 → 전체 합산으로 수정
  details에 balance_type, expires_at 포함
- 프론트: 2열 카드 → 통합 리스트 (연차 탭 + 연장근로 행)
- 연차 행 클릭 → 상세 모달 (이월/정기/장기/경조사 breakdown)
  이월 소진/만료 isExpired() 적용
- 내 메뉴에서 "내 연차 정보" 자동 제거

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-31 10:26:54 +09:00
parent 408bf1af62
commit f58dd115c9
4 changed files with 160 additions and 43 deletions

View File

@@ -7,7 +7,7 @@
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="/static/css/tkfb.css?v=2026033002">
<link rel="stylesheet" href="/css/production-dashboard.css?v=2026033003">
<link rel="stylesheet" href="/css/production-dashboard.css?v=2026033104">
</head>
<body class="bg-gray-50">
<span id="headerUserName" class="hidden">-</span>
@@ -34,7 +34,18 @@
</section>
</main>
<!-- 연차 상세 모달 -->
<div class="pd-detail-modal" id="vacDetailModal" onclick="if(event.target===this)closeVacDetail()">
<div class="pd-detail-sheet">
<div class="pd-detail-header">
<span class="pd-detail-title"><i class="fas fa-umbrella-beach"></i> 연차 상세</span>
<button class="pd-detail-close" onclick="closeVacDetail()"><i class="fas fa-times"></i></button>
</div>
<div id="vacDetailContent"></div>
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026033002"></script>
<script src="/js/production-dashboard.js?v=2026033003"></script>
<script src="/js/production-dashboard.js?v=2026033104"></script>
</body>
</html>