import React, { useState, useEffect } from 'react';
import api from '../api';
const BOMRevisionPage = ({
onNavigate,
selectedProject,
user
}) => {
const [bomFiles, setBomFiles] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState('');
// BOM 파일 목록 로드 (기본 구조만)
useEffect(() => {
const loadBOMFiles = async () => {
if (!selectedProject) return;
try {
setLoading(true);
// TODO: 실제 API 구현 필요
// const response = await api.get(`/files/project/${selectedProject.job_no}`);
// setBomFiles(response.data);
// 임시 데이터
setBomFiles([
{
id: 1,
bom_name: 'Main Process BOM',
revisions: ['Rev.0', 'Rev.1', 'Rev.2'],
latest_revision: 'Rev.2',
upload_date: '2024-10-17',
status: 'Active'
},
{
id: 2,
bom_name: 'Utility BOM',
revisions: ['Rev.0', 'Rev.1'],
latest_revision: 'Rev.1',
upload_date: '2024-10-16',
status: 'Active'
}
]);
} catch (err) {
console.error('BOM 파일 로드 실패:', err);
setError('BOM 파일을 불러오는데 실패했습니다.');
} finally {
setLoading(false);
}
};
loadBOMFiles();
}, [selectedProject]);
return (
{/* 헤더 */}
BOM Revision Management
Project: {selectedProject?.job_name || 'No Project Selected'}
{/* 프로젝트 정보 */}
{selectedProject?.official_project_code || selectedProject?.job_no || 'N/A'}
Project Code
{bomFiles.length}
BOM Files
{bomFiles.reduce((total, bom) => total + bom.revisions.length, 0)}
Total Revisions
{/* 개발 예정 배너 */}
🚧
Advanced Revision Management
고급 리비전 관리 기능이 개발 중입니다. 업로드 기능 완료 후 본격적인 개발이 시작됩니다.
{/* 예정 기능 미리보기 */}
📊
Revision Timeline
시각적 리비전 히스토리
🔍
Diff Comparison
리비전 간 변경사항 비교
⏪
Rollback System
이전 리비전으로 롤백
{/* 임시 BOM 파일 목록 (기본 구조) */}
{bomFiles.length > 0 && (
Current BOM Files (Preview)
{bomFiles.map((bom) => (
{bom.bom_name}
Latest: {bom.latest_revision}
Revisions: {bom.revisions.length}
Uploaded: {bom.upload_date}
))}
)}
);
};
export default BOMRevisionPage;