import { createIcons, BookOpen, X, ChevronDown, ChevronRight, RefreshCw } from 'lucide'; import { state } from '../core/state'; // ─── 자산별 가이드 콘텐츠 정의 (SW_Table 브랜치 전체 복구) ─── interface GuideTabConfig { id: string; label: string; content: string; } const GUIDE_TABS: GuideTabConfig[] = [ { id: 'overview', label: '📋 개요', content: `

IT 자산관리 시스템 개요

HM IT 자산관리 시스템(ITAM)은 기업의 IT 자산을 도입부터 폐기까지 전 과정에서 효율적으로 관리하기 위한 통합 플랫폼입니다.
하드웨어(PC, 서버, 스토리지, 전산비품, 모바일기기)와 소프트웨어(구독SW, 영구SW, 클라우드)를 체계적으로 추적하고 유지보수합니다.

전체 자산관리 프로세스

1
도입/구매

자산 구매 요청 → 승인 → 발주

2
등록/배정

자산번호 부여 → 시스템 등록 → 사용자 할당

3
운영/유지

현황 모니터링 → 점검/수리 → 이력 관리

4
반납/폐기

자산 회수 → 데이터 소거 → 폐기 처리

시스템 기본 사용방법

기능방법
자산 조회상단 카테고리(하드웨어/소프트웨어) 및 하위 탭 선택 후 데이터 조회
자산 등록[자산 추가] 버튼 클릭 후 상세 정보 입력 및 저장
정보 수정목록 행 클릭 후 나타나는 모달에서 내용 변경 및 저장
엑셀 업로드[업로드] 버튼 선택 후 표준 양식의 .xlsx 파일 선택
전체 엑셀저장[엑셀저장] 버튼 클릭 시 현재 전체 자산 데이터를 Excel로 백업
표준 양식[양식] 버튼 클릭 시 데이터 업로드용 빈 양식 다운로드
` }, { id: 'pc', label: '💻 개인PC', content: `

개인PC 관리 가이드

임직원에게 지급되는 데스크톱 및 노트북을 관리합니다. 자산의 지급, 교체, 반납까지의 전체 생애주기를 시스템에서 추적합니다.

관리 프로세스

1
구매 및 입고

구매 요청 → 발주 → 입고 검수

2
자산 등록

자산번호 부여, 상세 사양 등록

3
사용자 지급

사용자 지정 및 설치위치 기록

4
운영 관리

보안 점검 및 수리 이력 관리

5
교체/반납

장비 회수 및 데이터 소거

6
폐기 처리

불용 처리 및 매각/폐기 등록

주요 관리 항목

항목설명관리 주기
구매법인자산의 소유 법인등록 시
사용자/조직실제 사용자 및 소속 부서변동 시
자산번호고유 식별 번호 (바코드)등록 시
모델명/사양제조사 모델 및 CPU/RAM 등등록 시
도입금액구매 비용 (부가세 포함)등록 시
관리 팁: 자산 이력에서 '분출'과 '반납' 로그를 꼼꼼히 기록하면 자산의 실제 위치를 정확히 파악할 수 있습니다.
` }, { id: 'server', label: '🖥️ 서버/스토리지', content: `

인프라 자산 관리 가이드

서버실 및 IDC에 설치된 물리 서버와 스토리지 장비를 관리합니다. 고가의 자산이므로 담당자(정/부) 지정이 필수입니다.

관리 프로세스

1
도입 계획

사양 확정 및 구매 승인

2
설치 및 등록

네트워크 설정 및 자산번호 부여

3
운영 관리

정기 점검 및 장애 이력 관리

필수 입력 항목

항목중요성
IP 주소서버 접속 및 모니터링을 위한 필수 정보
설치위치IDC 또는 서버실 내의 정확한 랙 위치
담당자(정/부)비상 시 연락 가능한 관리 책임자
용도/상세운영 중인 서비스 및 상세 업무 설명
주의 사항: 서버 자산의 IP가 변경될 경우 시스템에 즉시 반영하여 네트워크 관리 대장과의 정합성을 유지해야 합니다.
` }, { id: 'software', label: '💾 소프트웨어', content: `

소프트웨어 자산 관리 가이드

구독형(SaaS) 및 영구형 라이선스를 관리합니다. 불법 소프트웨어 사용 방지와 비용 최적화가 주 목적입니다.

라이선스 관리 포인트

구분관리 내용
구독형(Sub)구독 만료일 도래 전 갱신 여부 결정 및 비용 정산
영구형(Perm)보유 수량 대비 실제 설치 수량 매핑 (초과 사용 금지)
운영서비스도메인, 메일 등 매월 또는 매년 발생하는 비용 추적
팁: 소프트웨어 상세 페이지의 [사용자 할당] 기능을 활용하여 누가 어떤 라이선스를 사용하는지 체계적으로 관리하세요.
` } ]; // ─── 가이드 모달 초기화 ─── export function initGuide() { const body = document.body; if (document.getElementById('guide-overlay')) return; const overlay = document.createElement('div'); overlay.className = 'modal-overlay hidden'; overlay.id = 'guide-overlay'; const tabsHtml = GUIDE_TABS.map((tab, i) => `
${tab.label}
` ).join(''); const panelsHtml = GUIDE_TABS.map((tab, i) => `
${tab.content}
` ).join(''); overlay.innerHTML = ` `; body.appendChild(overlay); const openGuide = () => { console.log('📖 Opening Full Guide Modal...'); overlay.classList.remove('hidden'); }; const closeGuide = () => overlay.classList.add('hidden'); const triggerBtn = document.getElementById('btn-open-guide-header'); if (triggerBtn) { triggerBtn.addEventListener('click', openGuide); } overlay.addEventListener('click', (e) => { if (e.target === overlay) closeGuide(); }); document.getElementById('btn-close-guide')?.addEventListener('click', closeGuide); const tabs = overlay.querySelectorAll('.guide-tab'); const panels = overlay.querySelectorAll('.guide-tab-panel'); tabs.forEach(tab => { tab.addEventListener('click', () => { const targetId = tab.getAttribute('data-guide-tab'); tabs.forEach(t => t.classList.remove('active')); panels.forEach(p => p.classList.remove('active')); tab.classList.add('active'); overlay.querySelector(`.guide-tab-panel[data-guide-panel="${targetId}"]`)?.classList.add('active'); }); }); createIcons({ icons: { BookOpen, X, ChevronDown, ChevronRight, RefreshCw } }); }