import React, { useState, useEffect } from 'react';
const ProjectsPage = ({ user }) => {
const [projects, setProjects] = useState([]);
const [loading, setLoading] = useState(true);
const [showCreateForm, setShowCreateForm] = useState(false);
useEffect(() => {
// 실제로는 API에서 프로젝트 데이터를 가져올 예정
// 현재는 더미 데이터 사용
setTimeout(() => {
setProjects([
{
id: 1,
name: '냉동기 시스템 개발',
type: '냉동기',
status: '진행중',
startDate: '2024-01-15',
endDate: '2024-06-30',
deliveryMethod: 'FOB',
progress: 65,
manager: '김철수'
},
{
id: 2,
name: 'BOG 처리 시스템',
type: 'BOG',
status: '계획',
startDate: '2024-02-01',
endDate: '2024-08-15',
deliveryMethod: 'CIF',
progress: 15,
manager: '이영희'
},
{
id: 3,
name: '다이아프람 펌프 제작',
type: '다이아프람',
status: '완료',
startDate: '2023-10-01',
endDate: '2024-01-31',
deliveryMethod: 'FOB',
progress: 100,
manager: '박민수'
}
]);
setLoading(false);
}, 1000);
}, []);
const getStatusColor = (status) => {
const colors = {
'계획': '#ed8936',
'진행중': '#48bb78',
'완료': '#38b2ac',
'보류': '#e53e3e'
};
return colors[status] || '#718096';
};
const getProgressColor = (progress) => {
if (progress >= 80) return '#48bb78';
if (progress >= 50) return '#ed8936';
return '#e53e3e';
};
if (loading) {
return (
프로젝트 목록을 불러오는 중...
);
}
return (
{/* 헤더 */}
📋 프로젝트 관리
전체 프로젝트를 관리하고 진행 상황을 확인하세요.
{/* 프로젝트 통계 */}
{[
{ label: '전체', count: projects.length, color: '#667eea' },
{ label: '진행중', count: projects.filter(p => p.status === '진행중').length, color: '#48bb78' },
{ label: '완료', count: projects.filter(p => p.status === '완료').length, color: '#38b2ac' },
{ label: '계획', count: projects.filter(p => p.status === '계획').length, color: '#ed8936' }
].map((stat, index) => (
{stat.count}
{stat.label}
))}
{/* 프로젝트 목록 */}
프로젝트 목록 ({projects.length}개)
{['프로젝트명', '유형', '상태', '수주일', '납기일', '납품방법', '진행률', '담당자'].map(header => (
|
{header}
|
))}
{projects.map(project => (
e.currentTarget.style.background = '#f7fafc'}
onMouseLeave={(e) => e.currentTarget.style.background = 'transparent'}>
|
{project.name}
|
{project.type}
|
{project.status}
|
{project.startDate}
|
{project.endDate}
|
{project.deliveryMethod}
|
|
{project.manager}
|
))}
{/* 프로젝트가 없을 때 */}
{projects.length === 0 && (
📋
등록된 프로젝트가 없습니다
첫 번째 프로젝트를 등록해보세요.
)}
{/* 프로젝트 생성 폼 모달 (향후 구현) */}
{showCreateForm && (
새 프로젝트 등록
이 기능은 곧 구현될 예정입니다.
)}
);
};
export default ProjectsPage;