refactor: UI 컴포넌트 추상화 및 입금/출금 등록 버튼 추가

- 입금관리, 출금관리 리스트에 등록 버튼 추가
- skeleton, confirm-dialog, empty-state, status-badge UI 컴포넌트 추가
- document-system 컴포넌트 추상화 (ApprovalLine, DocumentHeader 등)
- 여러 페이지 컴포넌트 리팩토링 및 코드 정리

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-01-22 17:21:42 +09:00
parent 777dccc7bd
commit 269b901e64
86 changed files with 3761 additions and 2614 deletions

View File

@@ -6,16 +6,7 @@
* "자재 투입이 필요합니다" 안내 후 확인 클릭 시 MaterialInputModal로 이동
*/
import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
} from '@/components/ui/alert-dialog';
import { ConfirmDialog } from '@/components/ui/confirm-dialog';
import type { WorkOrder } from '../ProductionDashboard/types';
interface CompletionConfirmDialogProps {
@@ -36,49 +27,38 @@ export function CompletionConfirmDialog({
onConfirm(); // 부모에서 MaterialInputModal 열기
};
const handleCancel = () => {
onOpenChange(false);
};
if (!order) return null;
return (
<AlertDialog open={open} onOpenChange={onOpenChange}>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle className="text-orange-600">
!
</AlertDialogTitle>
<AlertDialogDescription asChild>
<div className="space-y-3">
<div className="bg-gray-50 p-3 rounded-lg space-y-1 text-sm">
<p>
<span className="text-muted-foreground">:</span>{' '}
<span className="font-medium text-foreground">{order.orderNo}</span>
</p>
<p>
<span className="text-muted-foreground">:</span>{' '}
<span className="font-medium text-foreground">
{order.processName}
</span>
</p>
</div>
<p className="text-orange-600 font-medium">
?
</p>
<p className="text-sm text-muted-foreground">
(LOT )
</p>
</div>
</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel onClick={handleCancel}></AlertDialogCancel>
<AlertDialogAction onClick={handleConfirm}>
</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
<ConfirmDialog
open={open}
onOpenChange={onOpenChange}
onConfirm={handleConfirm}
variant="warning"
title={<span className="text-orange-600"> !</span>}
description={
<div className="space-y-3">
<div className="bg-gray-50 p-3 rounded-lg space-y-1 text-sm">
<p>
<span className="text-muted-foreground">:</span>{' '}
<span className="font-medium text-foreground">{order.orderNo}</span>
</p>
<p>
<span className="text-muted-foreground">:</span>{' '}
<span className="font-medium text-foreground">
{order.processName}
</span>
</p>
</div>
<p className="text-orange-600 font-medium">
?
</p>
<p className="text-sm text-muted-foreground">
(LOT )
</p>
</div>
}
confirmText="확인"
/>
);
}