feat: 다수 기능 개선 - 순찰, 출근, 작업분석, 모바일 UI 등

- 순찰/점검 기능 개선 (zone-detail 페이지 추가)
- 출근/근태 시스템 개선 (연차 조회, 근무현황)
- 작업분석 대분류 그룹화 및 마이그레이션 스크립트
- 모바일 네비게이션 UI 추가
- NAS 배포 도구 및 문서 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-02-09 14:41:01 +09:00
parent 1548253f56
commit 2b1c7bfb88
633 changed files with 361224 additions and 1090 deletions

View File

@@ -658,8 +658,8 @@ async function loadEquipmentMarkers(workplaceId) {
const width = eq.map_width_percent || 8;
const height = eq.map_height_percent || 6;
// 표시 이름: [코드] 이름
const displayName = `[${eq.equipment_code}] ${eq.equipment_name}`;
// 표시 이름: 설비 이름
const displayName = eq.equipment_name;
const movedBadge = eq.is_temporarily_moved ? ' 🚚' : '';
markersHtml += `
@@ -814,9 +814,8 @@ const STATUS_LABELS = {
async function openEquipmentPanel(equipment) {
currentPanelEquipment = equipment;
// 패널 헤더 설정
document.getElementById('panelEquipmentTitle').textContent =
`[${equipment.equipment_code}] ${equipment.equipment_name}`;
// 패널 헤더 설정 (설비 이름만)
document.getElementById('panelEquipmentTitle').textContent = equipment.equipment_name;
const statusEl = document.getElementById('panelEquipmentStatus');
statusEl.textContent = STATUS_LABELS[equipment.status] || equipment.status;
@@ -1286,7 +1285,7 @@ async function renderMoveDetailMap() {
style="left: ${eq.map_x_percent}%; top: ${eq.map_y_percent}%;
width: ${width}%; height: ${height}%;"
title="${eq.equipment_name}">
<span class="eq-label">${eq.equipment_code || eq.equipment_name}</span>
<span class="eq-label">${eq.equipment_name}</span>
</div>
`;
}).join('');
@@ -1331,7 +1330,7 @@ function onMoveDetailMapClick(event) {
targetMarker.style.width = width + '%';
targetMarker.style.height = height + '%';
targetMarker.style.display = 'flex';
targetMarker.innerHTML = `<span class="eq-label">${currentPanelEquipment.equipment_code || currentPanelEquipment.equipment_name}</span>`;
targetMarker.innerHTML = `<span class="eq-label">${currentPanelEquipment.equipment_name}</span>`;
document.getElementById('panelMoveConfirmBtn').disabled = false;
}