diff --git a/web/src/hooks/useBreadcrumbManager.ts b/web/src/hooks/useBreadcrumbManager.ts index bd18f4f8..a0fafc85 100644 --- a/web/src/hooks/useBreadcrumbManager.ts +++ b/web/src/hooks/useBreadcrumbManager.ts @@ -30,16 +30,74 @@ export const useBreadcrumbManager = (options?: BreadcrumbOptions) => { const updateBreadcrumbs = useCallback((breadcrumbPath: BreadcrumbPath) => { const breadcrumbType = options?.breadcrumbType || 'list'; - // 获取基础面包屑,对于详情页面,使用列表页面的基础面包屑作为起点 - const baseBreadcrumbs = breadcrumbType === 'list' - ? (allBreadcrumbs['space'] || []) - : (allBreadcrumbs['space'] || []); // 详情页面也从 space 获取基础面包屑 + // 对于详情页面,直接使用固定的知识库管理面包屑,不依赖可能被污染的 allBreadcrumbs + let baseBreadcrumbs: MenuItem[] = []; - // 只保留知识库菜单项之前的面包屑 - const knowledgeBaseMenuIndex = baseBreadcrumbs.findIndex(item => item.path === '/knowledge-base'); - const filteredBaseBreadcrumbs = knowledgeBaseMenuIndex >= 0 - ? baseBreadcrumbs.slice(0, knowledgeBaseMenuIndex + 1) - : baseBreadcrumbs; + if (breadcrumbType === 'detail') { + // 详情页面:始终使用固定的知识库管理面包屑 + baseBreadcrumbs = [ + { + id: 6, + parent: 0, + code: 'knowledge', + label: '知识库', + i18nKey: 'menu.knowledgeManagement', + path: '/knowledge-base', + enable: true, + display: true, + level: 1, + sort: 0, + icon: null, + iconActive: null, + menuDesc: null, + deleted: null, + updateTime: 0, + new_: null, + keepAlive: false, + master: null, + disposable: false, + appSystem: null, + subs: [], + } + ]; + } else { + // 列表页面:从 space 获取基础面包屑,但确保包含知识库管理 + const spaceBreadcrumbs = allBreadcrumbs['space'] || []; + const knowledgeBaseMenuIndex = spaceBreadcrumbs.findIndex(item => item.path === '/knowledge-base'); + + if (knowledgeBaseMenuIndex >= 0) { + baseBreadcrumbs = spaceBreadcrumbs.slice(0, knowledgeBaseMenuIndex + 1); + } else { + // 如果没有找到知识库菜单,使用默认的知识库管理面包屑 + baseBreadcrumbs = [ + { + id: 6, + parent: 0, + code: 'knowledge', + label: '知识库', + i18nKey: 'menu.knowledgeManagement', + path: '/knowledge-base', + enable: true, + display: true, + level: 1, + sort: 0, + icon: null, + iconActive: null, + menuDesc: null, + deleted: null, + updateTime: 0, + new_: null, + keepAlive: false, + master: null, + disposable: false, + appSystem: null, + subs: [], + } + ]; + } + } + + const filteredBaseBreadcrumbs = baseBreadcrumbs; // 给"知识库管理"添加点击事件 const breadcrumbsWithClick = filteredBaseBreadcrumbs.map((item) => { diff --git a/web/src/i18n/en.ts b/web/src/i18n/en.ts index ba409dde..e05be03f 100644 --- a/web/src/i18n/en.ts +++ b/web/src/i18n/en.ts @@ -613,6 +613,8 @@ export const en = { answer: 'Answer', normalMode: 'Normal Mode', qaMode: 'QA Mode', + fileParsingSettings: 'File Parsing Settings', + pdfEnhancementAnalysis: 'PDF Enhancement Analysis', createForm:{ name: 'Name', embedding_id: 'Embedding', diff --git a/web/src/i18n/zh.ts b/web/src/i18n/zh.ts index d97be1d6..c1b6b448 100644 --- a/web/src/i18n/zh.ts +++ b/web/src/i18n/zh.ts @@ -237,6 +237,8 @@ export const zh = { answer: '答案', normalMode: '常规模式', qaMode: '问答模式', + fileParsingSettings: '文件解析设置', + pdfEnhancementAnalysis: 'PDF增强解析', createForm: { name: '名称', embedding_id: '嵌入模型', diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx index c1e42fc8..150d32b8 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/CreateDataset.tsx @@ -1,5 +1,5 @@ import { useMemo,useRef, useState, useEffect } from 'react'; -import { Button, Flex, Radio, Steps, Modal, Input, Spin,message} from 'antd'; +import { Button, Flex, Radio, Steps, Modal, Input, Spin, message, Checkbox} from 'antd'; import { useTranslation } from 'react-i18next'; import { useLocation, useNavigate, useParams } from 'react-router-dom'; import Table, { type TableRef } from '@/components/Table' @@ -81,6 +81,7 @@ const CreateDataset = () => { const [blockSize, setBlockSize] = useState(130); const [processingMethod, setProcessingMethod] = useState('directBlock'); const [parameterSettings, setParameterSettings] = useState('defaultSettings'); + const [pdfEnhancementEnabled, setPdfEnhancementEnabled] = useState(false); const [messageApi, contextHolder] = message.useMessage(); const fileType = ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'csv', 'md', 'htm', 'html', 'json', 'ppt', 'pptx', 'txt','png','jpg'] const steps = useMemo( @@ -469,6 +470,26 @@ const CreateDataset = () => { )}
+ {t('knowledgeBase.fileParsingSettings')} +
+
+
setPdfEnhancementEnabled(!pdfEnhancementEnabled)} + > + setPdfEnhancementEnabled(e.target.checked)} + className='rb:mr-3' + /> + + {t('knowledgeBase.pdfEnhancementAnalysis')} + +
+
+
{t('knowledgeBase.dataProcessingSettings')}
diff --git a/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx b/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx index ed909515..48fc6fba 100644 --- a/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx +++ b/web/src/views/KnowledgeBase/[knowledgeBaseId]/Private.tsx @@ -118,6 +118,17 @@ const Private: FC = () => { let url = `/documents/${knowledgeBaseId}/documents`; setTableApi(url); fetchKnowledgeBaseDetail(knowledgeBaseId); + + // 立即设置基础面包屑,确保不会显示其他页面的面包屑 + updateBreadcrumbs({ + knowledgeBaseFolderPath, + knowledgeBase: { + id: knowledgeBaseId, + name: '加载中...', + type: 'knowledgeBase' + }, + documentFolderPath: folderPath, + }); } }, [knowledgeBaseId]);