'use client'; import { useState } from 'react'; import Link from 'next/link'; export default function KnowledgeLibrary() { const [viewMode, setViewMode] = useState<'grid' | 'list'>('grid'); const [selectedKnowledgeBases, setSelectedKnowledgeBases] = useState([]); const knowledgeBases = [ { id: 'kb-001', name: '通用知识库', description: '包含基础常识和通用信息,适用于大多数场景的问答需求', category: '通用', items: 1240, size: '15.6 MB', status: 'active', lastUpdated: '2024-01-15', creator: '系统默认', isDefault: true, usage: 856, tags: ['通用', '基础', '默认'] }, { id: 'kb-002', name: '技术文档库', description: '收录了各种技术文档、API说明和开发指南,为技术问题提供专业解答', category: '技术', items: 567, size: '8.3 MB', status: 'active', lastUpdated: '2024-01-14', creator: '张工程师', isDefault: false, usage: 423, tags: ['技术', 'API', '开发'] }, { id: 'kb-003', name: '产品说明库', description: '产品功能介绍、使用手册和操作指南,帮助用户更好地了解产品特性', category: '产品', items: 892, size: '12.1 MB', status: 'active', lastUpdated: '2024-01-13', creator: '李产品经理', isDefault: false, usage: 678, tags: ['产品', '手册', '功能'] }, { id: 'kb-004', name: '客服问答库', description: '客服常见问题和标准解答,提升客户服务效率和质量', category: '客服', items: 345, size: '4.2 MB', status: 'active', lastUpdated: '2024-01-12', creator: '王客服主管', isDefault: false, usage: 234, tags: ['客服', '问答', 'FAQ'] }, { id: 'kb-005', name: '法律法规库', description: '相关法律条文、政策解读和合规要求,确保业务合规运营', category: '法务', items: 178, size: '6.8 MB', status: 'active', lastUpdated: '2024-01-11', creator: '赵法务', isDefault: false, usage: 89, tags: ['法律', '合规', '政策'] }, { id: 'kb-006', name: '销售话术库', description: '销售技巧、话术模板和客户案例,提升销售团队的专业水平', category: '销售', items: 456, size: '5.9 MB', status: 'inactive', lastUpdated: '2024-01-10', creator: '陈销售总监', isDefault: false, usage: 156, tags: ['销售', '话术', '案例'] } ]; const toggleSelection = (id: string) => { setSelectedKnowledgeBases(prev => prev.includes(id) ? prev.filter(kbId => kbId !== id) : [...prev, id] ); }; const selectAll = () => { setSelectedKnowledgeBases(knowledgeBases.map(kb => kb.id)); }; const clearSelection = () => { setSelectedKnowledgeBases([]); }; const getStatusColor = (status: string) => { switch (status) { case 'active': return 'bg-green-100 text-green-800'; case 'inactive': return 'bg-red-100 text-red-800'; case 'updating': return 'bg-yellow-100 text-yellow-800'; default: return 'bg-gray-100 text-gray-800'; } }; const getStatusText = (status: string) => { switch (status) { case 'active': return '运行中'; case 'inactive': return '已停用'; case 'updating': return '更新中'; default: return '未知'; } }; return (
{/* 操作栏 */}
e.target.checked ? selectAll() : clearSelection()} className="w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500" /> {selectedKnowledgeBases.length > 0 ? `已选择 ${selectedKnowledgeBases.length} 个知识库` : '全选' }
{selectedKnowledgeBases.length > 0 && (
)}
{/* 知识库列表 */} {viewMode === 'grid' ? (
{knowledgeBases.map((kb) => (
toggleSelection(kb.id)} className="w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500" />

{kb.name}

{kb.isDefault && ( 默认 )}
{getStatusText(kb.status)}

{kb.description}

内容条目 {kb.items.toLocaleString()}
存储大小 {kb.size}
使用次数 {kb.usage.toLocaleString()}
最后更新 {kb.lastUpdated}
{kb.tags.map((tag, index) => ( {tag} ))}
{kb.creator}
查看详情
))}
) : (
{knowledgeBases.map((kb) => ( ))}
e.target.checked ? selectAll() : clearSelection()} className="w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500" /> 名称 分类 条目数 大小 使用次数 状态 最后更新 操作
toggleSelection(kb.id)} className="w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500" />
{kb.name}
{kb.isDefault && ( 默认 )}
{kb.description}
{kb.category} {kb.items.toLocaleString()} {kb.size} {kb.usage.toLocaleString()} {getStatusText(kb.status)} {kb.lastUpdated}
查看
)} {/* 分页 */}
共 {knowledgeBases.length} 个知识库
1
); }