import { useState, useEffect } from 'react'; import { fetchUploadLogs } from '../services/assetsApi'; import type { UploadLogItem } from '../services/assetsApi'; function AssetUpload() { const [uploadMode, setUploadMode] = useState<'add' | 'replace'>('add'); const [uploaded, setUploaded] = useState(false); const [uploadHistory, setUploadHistory] = useState([]); useEffect(() => { fetchUploadLogs(10) .then(setUploadHistory) .catch((err) => console.error('[assets] 업로드 이력 로드 실패:', err)); }, []); const handleUpload = () => { setUploaded(true); setTimeout(() => setUploaded(false), 3000); }; return (
{/* Left - Upload */}
📤 자산 데이터 업로드
{/* Drop Zone */}
📁
파일을 드래그하거나 클릭하여 업로드
엑셀(.xlsx), CSV 파일 지원 · 최대 10MB
{/* Asset Classification */}
{/* Jurisdiction */}
{/* Upload Mode */}
{/* Upload Button */}
{/* Right - Permission & History */}
{/* Permission System */}
🔐 수정 권한 체계
{[ { icon: '👑', role: '본청 관리자', desc: '전체 자산 조회·수정·삭제·업로드', color: 'text-color-danger', bg: 'rgba(239,68,68,0.15)', }, { icon: '🏛', role: '지방청 담당자', desc: '소속 지방청 및 하위 해경서 자산 수정·업로드', color: 'text-color-warning', bg: 'rgba(249,115,22,0.15)', }, { icon: '⚓', role: '해경서 담당자', desc: '소속 해경서 자산 수정·업로드', color: 'text-color-info', bg: 'rgba(59,130,246,0.15)', }, { icon: '👤', role: '일반 사용자', desc: '조회·다운로드만 가능', color: 'text-fg-sub', bg: 'rgba(100,116,139,0.15)', }, ].map((p, i) => (
{p.icon}
{p.role}
{p.desc}
))}
{/* Upload History */}
📋 최근 업로드 이력
{uploadHistory.map((h) => (
{h.fileNm}
{new Date(h.regDtm).toLocaleString('ko-KR')} · {h.uploaderNm} · {h.uploadCnt}건
완료
))}
); } export default AssetUpload;