"use client" import { useState, useEffect } from "react" import { useRouter } from "next/navigation" import { ChevronLeft, Save } from "lucide-react" import { Button } from "@/components/ui/button" import { Card } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Switch } from "@/components/ui/switch" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { Textarea } from "@/components/ui/textarea" import { DateRangePicker } from "@/components/ui/date-range-picker" import { WechatFriendSelector } from "@/components/WechatFriendSelector" import { WechatGroupSelector } from "@/components/WechatGroupSelector" import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion" import { toast } from "@/components/ui/use-toast" interface ContentLibrary { id: string name: string sourceType: "friends" | "groups" keywordsInclude: string keywordsExclude: string startDate: string endDate: string selectedFriends: any[] selectedGroups: any[] useAI: boolean aiPrompt: string enabled: boolean } export default function ContentLibraryPage({ params }: { params: { id: string } }) { const router = useRouter() const [library, setLibrary] = useState(null) const [isWechatFriendSelectorOpen, setIsWechatFriendSelectorOpen] = useState(false) const [isWechatGroupSelectorOpen, setIsWechatGroupSelectorOpen] = useState(false) const [isLoading, setIsLoading] = useState(true) useEffect(() => { const fetchLibrary = async () => { setIsLoading(true) try { // 模拟从API获取内容库数据 await new Promise((resolve) => setTimeout(resolve, 500)) const data = { id: params.id, name: "示例内容库", sourceType: "friends", keywordsInclude: "关键词1,关键词2", keywordsExclude: "排除词1,排除词2", startDate: "2024-01-01", endDate: "2024-12-31", selectedFriends: [ { id: "1", nickname: "张三", avatar: "/placeholder.svg?height=40&width=40" }, { id: "2", nickname: "李四", avatar: "/placeholder.svg?height=40&width=40" }, ], selectedGroups: [], useAI: true, aiPrompt: "AI提示词示例", enabled: true, } setLibrary(data) } catch (error) { console.error("Failed to fetch library data:", error) toast({ title: "错误", description: "获取内容库数据失败", variant: "destructive", }) } finally { setIsLoading(false) } } fetchLibrary() }, [params.id]) const handleSave = async () => { if (!library) return try { // 模拟保存到API await new Promise((resolve) => setTimeout(resolve, 500)) toast({ title: "成功", description: "内容库已保存", }) // 这里应该调用一个函数来更新外部展示的数据 // updateExternalDisplay(library) } catch (error) { console.error("Failed to save library:", error) toast({ title: "错误", description: "保存内容库失败", variant: "destructive", }) } } if (isLoading) { return
加载中...
} if (!library) { return
内容库不存在
} return (

内容库详情

setLibrary({ ...library, name: e.target.value })} placeholder="请输入内容库名称" required className="mt-1.5" />
setLibrary({ ...library, sourceType: value })} className="mt-1.5" > 选择微信好友 选择聊天群 {library.selectedFriends.length > 0 && (
{library.selectedFriends.map((friend) => (
{friend.nickname}
))}
)}
{library.selectedGroups.length > 0 && (
{library.selectedGroups.map((group) => (
{group.name}
))}
)}
关键字设置