/** * equipment-detail.js - 설비 상세 페이지 스크립트 */ // 전역 변수 let currentEquipment = null; let equipmentId = null; let workplaces = []; let factories = []; let selectedMovePosition = null; let repairPhotoBases = []; // 상태 라벨 const STATUS_LABELS = { active: '정상 가동', maintenance: '점검 중', repair_needed: '수리 필요', inactive: '비활성', external: '외부 반출', repair_external: '수리 외주' }; // 페이지 초기화 document.addEventListener('DOMContentLoaded', () => { // URL에서 equipment_id 추출 const urlParams = new URLSearchParams(window.location.search); equipmentId = urlParams.get('id'); if (!equipmentId) { alert('설비 ID가 필요합니다.'); goBack(); return; } // API 설정 후 데이터 로드 waitForApiConfig().then(() => { loadEquipmentData(); loadFactories(); loadRepairCategories(); }); }); // API 설정 대기 function waitForApiConfig() { return new Promise(resolve => { const check = setInterval(() => { if (window.API_BASE_URL) { clearInterval(check); resolve(); } }, 50); }); } // 뒤로가기 function goBack() { if (document.referrer && document.referrer.includes(window.location.host)) { history.back(); } else { window.location.href = '/pages/admin/equipments.html'; } } // ========================================== // 설비 데이터 로드 // ========================================== async function loadEquipmentData() { try { const response = await axios.get(`/equipments/${equipmentId}`); if (response.data.success) { currentEquipment = response.data.data; renderEquipmentInfo(); loadPhotos(); loadRepairHistory(); loadExternalLogs(); loadMoveLogs(); } } catch (error) { console.error('설비 정보 로드 실패:', error); alert('설비 정보를 불러오는데 실패했습니다.'); } } function renderEquipmentInfo() { const eq = currentEquipment; // 헤더 document.getElementById('equipmentTitle').textContent = `[${eq.equipment_code}] ${eq.equipment_name}`; document.getElementById('equipmentMeta').textContent = `${eq.model_name || '-'} | ${eq.manufacturer || '-'}`; // 상태 배지 const statusBadge = document.getElementById('equipmentStatus'); statusBadge.textContent = STATUS_LABELS[eq.status] || eq.status; statusBadge.className = `eq-status-badge ${eq.status}`; // 기본 정보 카드 document.getElementById('equipmentInfoCard').innerHTML = `