# 설비정보 화면 구현 가이드 > **화면명**: 설비정보 > **파일**: 설비정보.html > **분류**: 설비관리 > **구현 가능**: ✅ 완전 (v2-card-display 활용) --- ## 1. 화면 개요 생산 설비의 기본정보 및 상태를 관리하는 화면입니다. ### 핵심 기능 - 설비 목록 조회 (카드 형태) - 설비 등록/수정/삭제 - 설비 상세 정보 탭 관리 - 설비 이미지 관리 --- ## 2. 화면 레이아웃 ``` ┌─────────────────────────────────────────────────────────────────┐ │ [설비코드] [설비명] [설비유형▼] [상태▼] [초기화][조회] │ │ [사용자옵션][업로드][다운로드]│ ├───────────────────────┬─────────────────────────────────────────┤ │ 🏭 설비 목록 │ [기본정보][보전이력][점검이력][가동현황] │ │ ─────────────── │ ───────────────────────────────────── │ │ [신규등록] │ 설비코드: EQ-001 │ │ ┌──────────────────┐ │ 설비명: CNC 밀링머신 1호기 │ │ │ [이미지] EQ-001 │ │ 설비유형: 가공설비 │ │ │ CNC 밀링 [가동중] │ │ 상태: 가동중 │ │ ├──────────────────┤ │ 제조사: 현대공작기계 │ │ │ [이미지] EQ-002 │ ├─────────────────────────────────────────┤ │ │ 선반 1호 [점검중] │ │ [보전이력 테이블] │ │ ├──────────────────┤ │ │일자 |유형 |내용 |담당자│ │ │ │ [이미지] EQ-003 │ │ │2026-01|정기 |오일 교환 |김철수│ │ │ │ 프레스 [고장] │ │ │2026-01|수리 |베어링 교체 |이영희│ │ │ └──────────────────┘ │ │ └───────────────────────┴─────────────────────────────────────────┘ ``` --- ## 3. V2 컴포넌트 매핑 | HTML 영역 | V2 컴포넌트 | 상태 | |-----------|-------------|------| | 검색 섹션 | `v2-table-search-widget` | ✅ 가능 | | 설비 카드 목록 | `v2-card-display` | ✅ 가능 | | 분할 패널 | `v2-split-panel-layout` | ✅ 가능 | | 상세 탭 | `v2-tabs-widget` | ✅ 가능 | --- ## 4. 설비 카드 구조 ```typescript interface EquipmentCard { id: string; image: string; // 설비 이미지 URL code: string; // 설비코드 name: string; // 설비명 type: string; // 설비유형 status: 'running' | 'idle' | 'maintenance' | 'broken'; location: string; } // 상태별 스타일 statusStyles: { running: { bg: '#d1fae5', color: '#065f46', label: '가동중' }, idle: { bg: '#e5e7eb', color: '#374151', label: '대기중' }, maintenance: { bg: '#fef3c7', color: '#92400e', label: '점검중' }, broken: { bg: '#fee2e2', color: '#991b1b', label: '고장' } } ``` --- ## 5. 상세 탭 구성 ```typescript tabs: [ { id: 'basic', label: '기본정보', fields: [ { id: 'eq_code', label: '설비코드' }, { id: 'eq_name', label: '설비명' }, { id: 'eq_type', label: '설비유형' }, { id: 'status', label: '상태' }, { id: 'manufacturer', label: '제조사' }, { id: 'model', label: '모델명' }, { id: 'serial_no', label: '시리얼번호' }, { id: 'install_date', label: '설치일' }, { id: 'location', label: '설치위치' }, { id: 'manager', label: '담당자' } ] }, { id: 'maintenance', label: '보전이력', type: 'table', entityId: 'equipment_maintenance', columns: [ { id: 'date', label: '일자' }, { id: 'type', label: '유형' }, { id: 'content', label: '내용' }, { id: 'worker', label: '담당자' }, { id: 'cost', label: '비용' } ] }, { id: 'inspection', label: '점검이력', type: 'table', entityId: 'equipment_inspection' }, { id: 'operation', label: '가동현황', type: 'chart' // 향후 확장 } ] ``` --- ## 6. 검색 조건 | 필드명 | 컴포넌트 | 옵션 | |--------|----------|------| | 설비코드 | `v2-input` | placeholder: "설비코드" | | 설비명 | `v2-input` | placeholder: "설비명" | | 설비유형 | `v2-select` | 가공설비, 조립설비, 검사설비 등 | | 상태 | `v2-select` | 가동중, 대기중, 점검중, 고장 | --- ## 7. 현재 구현 가능 범위 ### ✅ 가능 - 검색 영역: `v2-table-search-widget` - 설비 카드 목록: `v2-card-display` (이미지+정보 조합 지원) - 분할 패널 레이아웃: `v2-split-panel-layout` - 상세 탭: `v2-tabs-widget` - 보전이력/점검이력 테이블: `v2-table-list` ### ⚠️ 부분 가능 - 가동현황 차트: 별도 차트 컴포넌트 필요 --- ## 8. 테이블 대체 구현 JSON ```json { "screen_code": "EQUIPMENT_MAIN", "screen_name": "설비정보", "components": [ { "type": "v2-table-search-widget", "position": { "x": 0, "y": 0, "w": 12, "h": 2 }, "config": { "searchFields": [ { "type": "input", "id": "eq_code", "placeholder": "설비코드" }, { "type": "input", "id": "eq_name", "placeholder": "설비명" }, { "type": "select", "id": "eq_type", "placeholder": "설비유형" }, { "type": "select", "id": "status", "placeholder": "상태", "options": [ { "value": "running", "label": "가동중" }, { "value": "idle", "label": "대기중" }, { "value": "maintenance", "label": "점검중" }, { "value": "broken", "label": "고장" } ] } ] } }, { "type": "v2-split-panel-layout", "position": { "x": 0, "y": 2, "w": 12, "h": 10 }, "config": { "masterPanel": { "title": "설비 목록", "entityId": "equipment", "buttons": [ { "label": "신규등록", "action": "create", "variant": "primary" } ], "columns": [ { "id": "eq_code", "label": "설비코드", "width": 100 }, { "id": "eq_name", "label": "설비명", "width": 200 }, { "id": "eq_type", "label": "설비유형", "width": 100 }, { "id": "status", "label": "상태", "width": 80 }, { "id": "location", "label": "설치위치", "width": 150 } ] }, "detailPanel": { "tabs": [ { "id": "basic", "label": "기본정보", "type": "form" }, { "id": "maintenance", "label": "보전이력", "type": "table", "entityId": "eq_maintenance" }, { "id": "inspection", "label": "점검이력", "type": "table", "entityId": "eq_inspection" }, { "id": "operation", "label": "가동현황", "type": "custom" } ] } } } ] } ``` --- ## 9. v2-card-display 설정 예시 `v2-card-display`는 이미 존재하는 컴포넌트입니다. ```typescript // v2-card-display 설정 cardDisplayConfig: { cardsPerRow: 3, cardSpacing: 16, cardStyle: { showTitle: true, // eq_name 표시 showSubtitle: true, // eq_code 표시 showDescription: true, showImage: true, // 설비 이미지 표시 showActions: true, imagePosition: "top", imageSize: "medium", }, columnMapping: { title: "eq_name", subtitle: "eq_code", image: "image_url", status: "status" }, dataSource: "table" } ``` **현재 V2 컴포넌트로 완전 구현 가능**