"use client" import type React from "react" import { useState } 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 { ArrowLeft, FileText, Trash2, Upload } from "lucide-react" import { useRouter } from "next/navigation" import { ScrollArea } from "@/components/ui/scroll-area" import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog" interface KnowledgeFile { id: string name: string type: string size: string uploadDate: string } export default function KnowledgeBasePage() { const router = useRouter() const [activeTab, setActiveTab] = useState("private") const [privateFiles, setPrivateFiles] = useState([ { id: "1", name: "私域运营手册.pdf", type: "PDF", size: "2.4 MB", uploadDate: "2023-12-10", }, { id: "2", name: "客户画像分析.docx", type: "Word", size: "1.8 MB", uploadDate: "2023-12-08", }, { id: "3", name: "获客策略指南.pdf", type: "PDF", size: "3.2 MB", uploadDate: "2023-12-05", }, ]) const [storeFiles, setStoreFiles] = useState([ { id: "1", name: "门店管理规范.pdf", type: "PDF", size: "1.9 MB", uploadDate: "2023-12-09", }, { id: "2", name: "产品介绍手册.docx", type: "Word", size: "2.1 MB", uploadDate: "2023-12-07", }, ]) const [isUploading, setIsUploading] = useState(false) const [showPreview, setShowPreview] = useState(false) const [previewFile, setPreviewFile] = useState(null) const handleFileUpload = (e: React.ChangeEvent) => { const files = e.target.files if (!files || files.length === 0) return setIsUploading(true) // 模拟上传过程 setTimeout(() => { const newFiles = Array.from(files).map((file) => ({ id: Date.now().toString(), name: file.name, type: file.name.split(".").pop()?.toUpperCase() || "未知", size: `${(file.size / (1024 * 1024)).toFixed(1)} MB`, uploadDate: new Date().toISOString().split("T")[0], })) if (activeTab === "private") { setPrivateFiles((prev) => [...prev, ...newFiles]) } else { setStoreFiles((prev) => [...prev, ...newFiles]) } setIsUploading(false) e.target.value = "" // 重置文件输入 }, 1500) } const handleDeleteFile = (id: string) => { if (activeTab === "private") { setPrivateFiles((prev) => prev.filter((file) => file.id !== id)) } else { setStoreFiles((prev) => prev.filter((file) => file.id !== id)) } } const handlePreviewFile = (file: KnowledgeFile) => { setPreviewFile(file) setShowPreview(true) } return (
{/* 头部 */}

知识库管理

{/* 主内容区域 */}
知识库文件 私域操盘手知识库 门店端知识库

已上传 {privateFiles.length} 个文件

{privateFiles.map((file) => (

{file.name}

{file.type} • {file.size} • 上传于 {file.uploadDate}

))} {privateFiles.length === 0 && (
暂无文件,请上传文件到知识库
)}

已上传 {storeFiles.length} 个文件

{storeFiles.map((file) => (

{file.name}

{file.type} • {file.size} • 上传于 {file.uploadDate}

))} {storeFiles.length === 0 && (
暂无文件,请上传文件到知识库
)}
{/* 文件预览对话框 */} {previewFile?.name}

文件预览功能正在开发中

文件类型: {previewFile?.type} • 大小: {previewFile?.size}

{/* 上传中提示 */} {isUploading && (

正在上传文件...

请稍候

)}
) }