'use client'; /** * 단계 상세 뷰 컴포넌트 * * 기획서 스크린샷 2 기준: * - 기본 정보: 단계코드, 단계명, 필수여부, 승인여부, 검사여부, 상태 * - 연결 정보: 유형(팝업/없음), 도달(입고완료 자재 목록 등) * - 완료 정보: 유형(선택 완료 시 완료/클릭 시 완료) */ import { useRouter } from 'next/navigation'; import { ArrowLeft, Edit } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { PageLayout } from '@/components/organisms/PageLayout'; import { PageHeader } from '@/components/organisms/PageHeader'; import { useMenuStore } from '@/store/menuStore'; import { usePermission } from '@/hooks/usePermission'; import type { ProcessStep } from '@/types/process'; interface StepDetailProps { step: ProcessStep; processId: string; } export function StepDetail({ step, processId }: StepDetailProps) { const router = useRouter(); const sidebarCollapsed = useMenuStore((state) => state.sidebarCollapsed); const { canUpdate } = usePermission(); const handleEdit = () => { router.push( `/ko/master-data/process-management/${processId}/steps/${step.id}?mode=edit` ); }; const handleBack = () => { router.push(`/ko/master-data/process-management/${processId}`); }; return (
{/* 기본 정보 */} 기본 정보
단계코드
{step.stepCode}
단계명
{step.stepName}
필수여부
{step.isRequired ? '필수' : '선택'}
승인여부
{step.needsApproval ? '필요' : '불필요'}
검사여부
{step.needsInspection ? '필요' : '불필요'}
상태
{step.isActive ? '사용' : '미사용'}
{/* 연결 정보 */} 연결 정보
유형
{step.connectionType}
도달
{step.connectionTarget || '-'}
{/* 완료 정보 */} 완료 정보
유형
{step.completionType}
{/* 하단 액션 버튼 (sticky) */}
{canUpdate && ( )}
); }