feat(knowledge): restructure knowledge base pages and components

- Implement new setting and testing pages with breadcrumbs
This commit is contained in:
2025-10-14 18:06:12 +08:00
parent 7384ae36d0
commit 9f6785672f
12 changed files with 834 additions and 48 deletions

View File

@@ -22,6 +22,7 @@ import FileUploadDialog from '@/components/FileUploadDialog';
import KnowledgeInfoCard from './components/KnowledgeInfoCard';
import FileListComponent from './components/FileListComponent';
import FloatingActionButtons from './components/FloatingActionButtons';
import KnowledgeBreadcrumbs from './components/KnowledgeBreadcrumbs';
import { useDocumentList, useDocumentOperations } from '@/hooks/document-hooks';
function KnowledgeBaseDetail() {
@@ -45,10 +46,15 @@ function KnowledgeBaseDetail() {
// 使用新的document hooks
const {
documents: files,
total,
loading: filesLoading,
error: filesError,
currentPage,
pageSize,
refresh: refreshFiles,
setKeywords,
setCurrentPage,
setPageSize,
} = useDocumentList(id || '');
const {
@@ -89,6 +95,7 @@ function KnowledgeBaseDetail() {
ids: new Set()
});
refreshFiles();
fetchKnowledgeDetail();
} catch (err: any) {
setError(err.response?.data?.message || err.message || '删除文件失败');
}
@@ -101,6 +108,7 @@ function KnowledgeBaseDetail() {
try {
await uploadDocuments(kb_id, uploadFiles);
refreshFiles();
fetchKnowledgeDetail();
} catch (err: any) {
throw new Error(err.response?.data?.message || err.message || '上传文件失败');
}
@@ -161,17 +169,7 @@ function KnowledgeBaseDetail() {
return (
<Box sx={{ p: 3 }}>
{/* 面包屑导航 */}
<Breadcrumbs sx={{ mb: 2 }}>
<Link
component="button"
variant="body1"
onClick={() => navigate('/knowledge')}
sx={{ textDecoration: 'none' }}
>
</Link>
<Typography color="text.primary">{knowledgeBase.name}</Typography>
</Breadcrumbs>
<KnowledgeBreadcrumbs knowledge={knowledgeBase} />
{/* 知识库信息卡片 */}
<KnowledgeInfoCard knowledgeBase={knowledgeBase} />
@@ -202,12 +200,17 @@ function KnowledgeBaseDetail() {
console.log('新的选择模型:', newModel);
setRowSelectionModel(newModel);
}}
total={total}
page={currentPage}
pageSize={pageSize}
onPageChange={setCurrentPage}
onPageSizeChange={setPageSize}
/>
{/* 浮动操作按钮 */}
<FloatingActionButtons
onTestClick={() => setTestingDialogOpen(true)}
onConfigClick={() => setConfigDialogOpen(true)}
onTestClick={() => navigate(`/knowledge/${id}/testing`)}
onConfigClick={() => navigate(`/knowledge/${id}/setting`)}
/>
{/* 上传文件对话框 */}