Fix: The filenames in the parsing result log pages are not displayed. (#18194)

This commit is contained in:
balibabu
2026-08-13 14:16:36 +08:00
committed by GitHub
parent 0a4cc65db0
commit 4148193494
6 changed files with 57 additions and 5 deletions

View File

@@ -209,7 +209,11 @@ export const useNavigatePage = () => {
const params: string[] = [];
Object.keys(props).forEach((key) => {
if (props[key as keyof typeof props]) {
params.push(`${key}=${props[key as keyof typeof props]}`);
// Values may contain characters like `&`, `=` or `#` (e.g. file
// names), which would corrupt the query string without encoding.
params.push(
`${key}=${encodeURIComponent(props[key as keyof typeof props] as string)}`,
);
}
});
navigate(

View File

@@ -75,6 +75,12 @@ export function PipelineLogSheet({
uploadedFileData?.created_by,
[PipelineResultSearchParams.DocumentExtension]:
uploadedFileData?.extension,
[PipelineResultSearchParams.DocumentName]:
uploadedFileData?.name,
[PipelineResultSearchParams.DocumentSize]:
uploadedFileData?.size,
[PipelineResultSearchParams.DocumentCreatedAt]:
uploadedFileData?.created_at,
})}
>
{t('flow.viewResult')} <ArrowUpRight />

View File

@@ -23,4 +23,7 @@ export enum PipelineResultSearchParams {
AgentTitle = 'agent_title',
CreatedBy = 'created_by', // Who uploaded the file
DocumentExtension = 'extension',
DocumentName = 'doc_name',
DocumentSize = 'doc_size',
DocumentCreatedAt = 'doc_created_at',
}

View File

@@ -289,7 +289,6 @@ export const useGetPipelineResultSearchParams = () => {
const is_read_only = currentQueryParameters.get(
PipelineResultSearchParams.IsReadOnly,
) as 'true' | 'false';
console.log('is_read_only', is_read_only);
return {
type: currentQueryParameters.get(PipelineResultSearchParams.Type) || '',
documentId:
@@ -307,6 +306,14 @@ export const useGetPipelineResultSearchParams = () => {
) || '',
createdBy:
currentQueryParameters.get(PipelineResultSearchParams.CreatedBy) || '',
documentName:
currentQueryParameters.get(PipelineResultSearchParams.DocumentName) || '',
documentSize:
currentQueryParameters.get(PipelineResultSearchParams.DocumentSize) || '',
documentCreatedAt:
currentQueryParameters.get(
PipelineResultSearchParams.DocumentCreatedAt,
) || '',
};
};

View File

@@ -24,6 +24,7 @@ import { Modal } from '@/components/ui/modal/modal';
import { AgentCategory, AgentQuery } from '@/constants/agent';
import { Images } from '@/constants/common';
import { useGetKnowledgeSearchParams } from '@/hooks/route-hook';
import { IKnowledgeFile } from '@/interfaces/database/dataset';
import { Routes } from '@/routes';
import { LucideArrowBigLeft } from 'lucide-react';
import TimelineDataFlow from './components/time-line';
@@ -33,17 +34,45 @@ import { IDslComponent, IPipelineFileLogDetail } from './interface';
import ParserContainer from './parser';
const DataflowResult = () => {
const { isReadOnly, knowledgeId, agentId, documentExtension } =
useGetPipelineResultSearchParams();
const {
isReadOnly,
knowledgeId,
agentId,
documentExtension,
documentName,
documentSize,
documentCreatedAt,
} = useGetPipelineResultSearchParams();
const isAgent = !!agentId;
const { pipelineResult } = useFetchPipelineResult({ agentId });
const {
data: { documentInfo },
data: { documentInfo: chunkDocumentInfo },
} = useFetchNextChunkList(!isAgent);
// In agent mode the chunk list query is disabled, so the document info
// comes from the search params passed by the pipeline log sheet instead.
const documentInfo = useMemo<IKnowledgeFile>(() => {
if (!isAgent) {
return chunkDocumentInfo;
}
return {
name: documentName,
size: Number(documentSize) || 0,
create_date: documentCreatedAt
? new Date(Number(documentCreatedAt) * 1000).toISOString()
: '',
} as IKnowledgeFile;
}, [
chunkDocumentInfo,
documentCreatedAt,
documentName,
documentSize,
isAgent,
]);
const { selectedChunk, handleChunkCardClick } = useHandleChunkCardClick();
const [activeStepId, setActiveStepId] = useState<number | string>(2);
const { data: dataset } = useFetchPipelineFileLogDetail({

View File

@@ -150,4 +150,7 @@ export interface NavigateToDataflowResultProps {
[PipelineResultSearchParams.Type]: string;
[PipelineResultSearchParams.CreatedBy]?: string;
[PipelineResultSearchParams.DocumentExtension]?: string;
[PipelineResultSearchParams.DocumentName]?: string;
[PipelineResultSearchParams.DocumentSize]?: string | number;
[PipelineResultSearchParams.DocumentCreatedAt]?: string | number;
}