"use client" import { useState } from "react" import { ChevronLeft, Filter, Search, RefreshCw, Plus, Edit, Trash2, Eye, MoreVertical } from "lucide-react" import { Card } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs" import { Badge } from "@/components/ui/badge" import { useRouter } from "next/navigation" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu" import Image from "next/image" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogDescription, } from "@/components/ui/dialog" import { toast } from "@/components/ui/use-toast" interface ContentLibrary { id: string name: string source: "friends" | "groups" targetAudience: { id: string nickname: string avatar: string }[] itemCount: number lastUpdated: string enabled: boolean } export default function ContentLibraryPage() { const router = useRouter() const [libraries, setLibraries] = useState([ { id: "129", name: "微信好友广告", source: "friends", targetAudience: [ { id: "1", nickname: "张三", avatar: "/placeholder.svg?height=40&width=40" }, { id: "2", nickname: "李四", avatar: "/placeholder.svg?height=40&width=40" }, { id: "3", nickname: "王五", avatar: "/placeholder.svg?height=40&width=40" }, ], itemCount: 0, lastUpdated: "2024-02-09 12:30", enabled: false, }, { id: "127", name: "开发群", source: "groups", targetAudience: [{ id: "4", nickname: "开发群1", avatar: "/placeholder.svg?height=40&width=40" }], itemCount: 0, lastUpdated: "2024-02-09 12:30", enabled: true, }, ]) const [searchQuery, setSearchQuery] = useState("") const [activeTab, setActiveTab] = useState("all") const [viewLibraryId, setViewLibraryId] = useState(null) const [deleteDialogOpen, setDeleteDialogOpen] = useState(false) const [libraryToDelete, setLibraryToDelete] = useState(null) const handleCreateNew = () => { router.push(`/content/new`) } const handleEdit = (id: string) => { router.push(`/content/${id}`) } const handleDelete = (id: string) => { setLibraryToDelete(id) setDeleteDialogOpen(true) } const confirmDelete = () => { if (libraryToDelete) { setLibraries(libraries.filter((lib) => lib.id !== libraryToDelete)) toast({ title: "删除成功", description: "内容库已成功删除", }) } setDeleteDialogOpen(false) setLibraryToDelete(null) } const handleViewMaterials = (id: string) => { router.push(`/content/${id}/materials`) } const handleViewLibrary = (id: string) => { setViewLibraryId(id) } const filteredLibraries = libraries.filter( (library) => (activeTab === "all" || library.source === activeTab) && (library.name.toLowerCase().includes(searchQuery.toLowerCase()) || library.targetAudience.some((target) => target.nickname.toLowerCase().includes(searchQuery.toLowerCase()))), ) // 查找当前查看的内容库 const viewingLibrary = viewLibraryId ? libraries.find((lib) => lib.id === viewLibraryId) : null return (

内容库

setSearchQuery(e.target.value)} className="pl-9" />
全部 微信好友 聊天群
{filteredLibraries.map((library) => (

{library.name}

{library.enabled ? "已启用" : "已停用"}
来源:
{library.targetAudience.slice(0, 3).map((target) => ( {target.nickname} ))} {library.targetAudience.length > 3 && ( +{library.targetAudience.length - 3} )}
内容数量:{library.itemCount}
更新时间:{library.lastUpdated}
handleViewLibrary(library.id)}> 查看 handleEdit(library.id)}> 编辑 handleDelete(library.id)}> 删除 handleViewMaterials(library.id)}> 查看素材
))} {filteredLibraries.length === 0 && (
未找到匹配的内容库
)}
{/* 查看内容库详情对话框 */} !open && setViewLibraryId(null)}> 内容库详情 {viewingLibrary && (

{viewingLibrary.name}

{viewingLibrary.enabled ? "已启用" : "已停用"}
来源
{viewingLibrary.targetAudience.map((target) => (
{target.nickname} {target.nickname}
))}
内容数量
{viewingLibrary.itemCount}
更新时间
{viewingLibrary.lastUpdated}
)}
{/* 删除确认对话框 */} 确认删除 您确定要删除此内容库吗?此操作无法撤销,所有相关内容将被永久删除。
) }