From a351fba48343a89245d9a67f3b7999af08301ce6 Mon Sep 17 00:00:00 2001 From: eeee0717 Date: Thu, 5 Jun 2025 20:32:47 +0800 Subject: [PATCH] feat: add preprocess icon --- src/main/services/KnowledgeService.ts | 5 +++ .../src/pages/knowledge/KnowledgeContent.tsx | 32 +++++++++++++++++-- .../pages/knowledge/components/StatusIcon.tsx | 23 +++++++------ src/renderer/src/queue/KnowledgeQueue.ts | 14 +++++++- src/renderer/src/store/knowledge.ts | 19 ++++++++++- src/renderer/src/types/index.ts | 1 + 6 files changed, 79 insertions(+), 15 deletions(-) diff --git a/src/main/services/KnowledgeService.ts b/src/main/services/KnowledgeService.ts index 84362c026..e02fca9fc 100644 --- a/src/main/services/KnowledgeService.ts +++ b/src/main/services/KnowledgeService.ts @@ -565,6 +565,11 @@ class KnowledgeService { Logger.info(`Starting preprocess processing for scanned PDF: ${file.path}`) const { processedFile } = await provider.parseFile(item.id, file) fileToProcess = processedFile + console.warn('base', base, 'item', item, 'file', file) + const mainWindow = windowService.getMainWindow() + mainWindow?.webContents.send('file-preprocess-finished', { + itemId: item.id + }) } catch (err) { Logger.error(`Preprocess processing failed: ${err}`) // 如果预处理失败,使用原始文件 diff --git a/src/renderer/src/pages/knowledge/KnowledgeContent.tsx b/src/renderer/src/pages/knowledge/KnowledgeContent.tsx index eb5fd59a3..6b439ff74 100644 --- a/src/renderer/src/pages/knowledge/KnowledgeContent.tsx +++ b/src/renderer/src/pages/knowledge/KnowledgeContent.tsx @@ -39,9 +39,13 @@ const KnowledgeContent: FC = ({ selectedBase }) => { const { t } = useTranslation() const [expandAll, setExpandAll] = useState(false) const [progressMap, setProgressMap] = useState>(new Map()) - + const [preprocessMap, setPreprocessMap] = useState>(new Map()) useEffect(() => { const handlers = [ + window.electron.ipcRenderer.on('file-preprocess-finished', (_, { itemId }) => { + setPreprocessMap((prev) => new Map(prev).set(itemId, true)) + }), + window.electron.ipcRenderer.on('file-preprocess-progress', (_, { itemId, progress }) => { setProgressMap((prev) => new Map(prev).set(itemId, progress)) }), @@ -78,6 +82,7 @@ const KnowledgeContent: FC = ({ selectedBase }) => { const providerName = getProviderName(base?.model.provider || '') const disabled = !base?.version || !providerName + console.log(fileItems) if (!base) { return null @@ -252,6 +257,16 @@ const KnowledgeContent: FC = ({ selectedBase }) => { } } + const showPreprocessIcon = (item: KnowledgeItem) => { + if (base.preprocessOrOcrProvider && item.isPreprocessed !== false) { + return true + } + if (!base.preprocessOrOcrProvider && item.isPreprocessed === true) { + return true + } + return false + } + return ( @@ -369,13 +384,24 @@ const KnowledgeContent: FC = ({ selectedBase }) => { {item.uniqueId && (