ERP-node/frontend/app/(main)/admin/screenMng/page.tsx

123 lines
4.8 KiB
TypeScript
Raw Normal View History

2025-09-01 11:48:12 +09:00
"use client";
import { useState, useEffect } from "react";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { Plus, Grid3X3, Palette, Settings, FileText } from "lucide-react";
import ScreenList from "@/components/screen/ScreenList";
import ScreenDesigner from "@/components/screen/ScreenDesigner";
import TemplateManager from "@/components/screen/TemplateManager";
import { ScreenDefinition } from "@/types/screen";
export default function ScreenManagementPage() {
const [selectedScreen, setSelectedScreen] = useState<ScreenDefinition | null>(null);
const [activeTab, setActiveTab] = useState("screens");
return (
<div className="container mx-auto space-y-6 p-6">
{/* 페이지 헤더 */}
<div className="flex items-center justify-between">
<div>
<h1 className="text-3xl font-bold text-gray-900"> </h1>
<p className="mt-2 text-gray-600"> </p>
</div>
<Button className="bg-blue-600 hover:bg-blue-700">
<Plus className="mr-2 h-4 w-4" />
</Button>
</div>
{/* 메인 컨텐츠 */}
<Tabs value={activeTab} onValueChange={setActiveTab} className="space-y-4">
<TabsList className="grid w-full grid-cols-4">
<TabsTrigger value="screens" className="flex items-center gap-2">
<Grid3X3 className="h-4 w-4" />
</TabsTrigger>
<TabsTrigger value="designer" className="flex items-center gap-2">
<Palette className="h-4 w-4" />
</TabsTrigger>
<TabsTrigger value="templates" className="flex items-center gap-2">
<FileText className="h-4 w-4" />
릿
</TabsTrigger>
<TabsTrigger value="settings" className="flex items-center gap-2">
<Settings className="h-4 w-4" />
</TabsTrigger>
</TabsList>
{/* 화면 관리 탭 */}
<TabsContent value="screens" className="space-y-4">
<Card>
<CardHeader>
<CardTitle> </CardTitle>
</CardHeader>
<CardContent>
<ScreenList onScreenSelect={setSelectedScreen} selectedScreen={selectedScreen} />
</CardContent>
</Card>
</TabsContent>
{/* 화면 설계기 탭 */}
<TabsContent value="designer" className="space-y-4">
<Card>
<CardHeader>
<CardTitle> </CardTitle>
</CardHeader>
<CardContent>
{selectedScreen ? (
<ScreenDesigner screen={selectedScreen} />
) : (
<div className="py-12 text-center text-gray-500">
<Palette className="mx-auto mb-4 h-16 w-16 text-gray-300" />
<p> </p>
<p className="text-sm"> </p>
</div>
)}
</CardContent>
</Card>
</TabsContent>
{/* 템플릿 관리 탭 */}
<TabsContent value="templates" className="space-y-4">
<Card>
<CardHeader>
<CardTitle>릿 </CardTitle>
</CardHeader>
<CardContent>
<TemplateManager />
</CardContent>
</Card>
</TabsContent>
{/* 설정 탭 */}
<TabsContent value="settings" className="space-y-4">
<Card>
<CardHeader>
<CardTitle> </CardTitle>
</CardHeader>
<CardContent>
<div className="space-y-4">
<div>
<h3 className="mb-2 text-lg font-medium"> </h3>
<p className="text-sm text-gray-600"> .</p>
</div>
<div>
<h3 className="mb-2 text-lg font-medium"> </h3>
<p className="text-sm text-gray-600"> .</p>
</div>
<div>
<h3 className="mb-2 text-lg font-medium"> </h3>
<p className="text-sm text-gray-600"> , .</p>
</div>
</div>
</CardContent>
</Card>
</TabsContent>
</Tabs>
</div>
);
}