summaryrefslogtreecommitdiff
path: root/components/knox/approval/ApprovalManager.tsx
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-07-28 12:10:39 +0000
committerjoonhoekim <26rote@gmail.com>2025-07-28 12:10:39 +0000
commit75249e6fa46864f49d4eb91bd755171b6b65eaae (patch)
treef2c021f0fe10b3513d29f05ca15b82e460d79d20 /components/knox/approval/ApprovalManager.tsx
parentc228a89c2834ee63b209bad608837c39643f350e (diff)
(김준회) 공통모듈 - Knox 결재 모듈 구현, 유저 선택기 구현, 상신 결재 저장을 위한 DB 스키마 및 서비스 추가, spreadjs 라이센스 환경변수 통일, 유저 테이블에 epId 컬럼 추가
Diffstat (limited to 'components/knox/approval/ApprovalManager.tsx')
-rw-r--r--components/knox/approval/ApprovalManager.tsx92
1 files changed, 33 insertions, 59 deletions
diff --git a/components/knox/approval/ApprovalManager.tsx b/components/knox/approval/ApprovalManager.tsx
index cac534c4..89450445 100644
--- a/components/knox/approval/ApprovalManager.tsx
+++ b/components/knox/approval/ApprovalManager.tsx
@@ -4,8 +4,6 @@ import { useState } from 'react';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Badge } from '@/components/ui/badge';
-import { Switch } from '@/components/ui/switch';
-import { Label } from '@/components/ui/label';
import { Separator } from '@/components/ui/separator';
import { FileText, Eye, XCircle, List, History, Settings } from 'lucide-react';
@@ -16,18 +14,13 @@ import ApprovalCancel from './ApprovalCancel';
import ApprovalList from './ApprovalList';
interface ApprovalManagerProps {
- useFakeData?: boolean;
- systemId?: string;
defaultTab?: string;
}
export default function ApprovalManager({
- useFakeData = false,
- systemId = 'EVCP_SYSTEM',
defaultTab = 'submit'
}: ApprovalManagerProps) {
const [currentTab, setCurrentTab] = useState(defaultTab);
- const [isTestMode, setIsTestMode] = useState(useFakeData);
const [selectedApInfId, setSelectedApInfId] = useState<string>('');
const handleSubmitSuccess = (apInfId: string) => {
@@ -45,12 +38,8 @@ export default function ApprovalManager({
setCurrentTab('detail');
};
- const handleTestModeChange = (checked: boolean) => {
- setIsTestMode(checked);
- };
-
return (
- <div className="w-full max-w-7xl mx-auto space-y-6">
+ <div className="w-full max-w-5xl mx-auto space-y-6">
{/* 헤더 */}
<Card>
<CardHeader>
@@ -65,26 +54,15 @@ export default function ApprovalManager({
<CardContent>
<div className="flex items-center justify-between">
- <div className="flex items-center gap-4">
- <div className="flex items-center gap-2">
- <Label htmlFor="test-mode">테스트 모드</Label>
- <Switch
- id="test-mode"
- checked={isTestMode}
- onCheckedChange={handleTestModeChange}
- />
- </div>
- {isTestMode && (
- <Badge variant="outline" className="text-yellow-600 border-yellow-600">
- 테스트 모드 활성화
- </Badge>
- )}
- </div>
+ {/* 좌측 영역 - 현재는 테스트 모드 UI 제거로 여백 유지 */}
+ <div />
- <div className="flex items-center gap-2 text-sm text-gray-500">
- <span>시스템 ID:</span>
- <Badge variant="outline">{systemId}</Badge>
- </div>
+ {process.env.NEXT_PUBLIC_KNOX_SYSTEM_ID && (
+ <div className="flex items-center gap-2 text-sm text-gray-500">
+ <span>시스템 ID:</span>
+ <Badge variant="outline">{process.env.NEXT_PUBLIC_KNOX_SYSTEM_ID}</Badge>
+ </div>
+ )}
</div>
</CardContent>
</Card>
@@ -116,50 +94,46 @@ export default function ApprovalManager({
{/* 결재 상신 탭 */}
<TabsContent value="submit" className="space-y-6">
- <ApprovalSubmit
- useFakeData={isTestMode}
- systemId={systemId}
- onSubmitSuccess={handleSubmitSuccess}
- />
+ <div className="w-full">
+ <ApprovalSubmit onSubmitSuccess={handleSubmitSuccess} />
+ </div>
</TabsContent>
{/* 결재 상세 조회 탭 */}
<TabsContent value="detail" className="space-y-6">
- <ApprovalDetail
- useFakeData={isTestMode}
- systemId={systemId}
- initialApInfId={selectedApInfId}
- />
+ <div className="w-full">
+ <ApprovalDetail initialApInfId={selectedApInfId} />
+ </div>
</TabsContent>
{/* 결재 취소 탭 */}
<TabsContent value="cancel" className="space-y-6">
- <ApprovalCancel
- useFakeData={isTestMode}
- systemId={systemId}
- initialApInfId={selectedApInfId}
- onCancelSuccess={handleCancelSuccess}
- />
+ <div className="w-full">
+ <ApprovalCancel
+ initialApInfId={selectedApInfId}
+ onCancelSuccess={handleCancelSuccess}
+ />
+ </div>
</TabsContent>
{/* 상신함 탭 */}
<TabsContent value="list" className="space-y-6">
- <ApprovalList
- useFakeData={isTestMode}
- systemId={systemId}
- type="submission"
- onItemClick={handleListItemClick}
- />
+ <div className="w-full">
+ <ApprovalList
+ type="submission"
+ onItemClick={handleListItemClick}
+ />
+ </div>
</TabsContent>
{/* 결재 이력 탭 */}
<TabsContent value="history" className="space-y-6">
- <ApprovalList
- useFakeData={isTestMode}
- systemId={systemId}
- type="history"
- onItemClick={handleListItemClick}
- />
+ <div className="w-full">
+ <ApprovalList
+ type="history"
+ onItemClick={handleListItemClick}
+ />
+ </div>
</TabsContent>
</Tabs>