Fix: Dataset parse error (#12310)

### What problem does this PR solve?

Fix: Dataset parse error

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
chanx
2025-12-30 13:08:20 +08:00
committed by GitHub
parent 59884ab0fb
commit 4037788e0c
7 changed files with 138 additions and 138 deletions

View File

@ -278,7 +278,7 @@ export const useRunDocument = () => {
const ret = await kbService.document_run({
doc_ids: documentIds,
run,
...option,
...(option || {}),
});
const code = get(ret, 'data.code');
if (code === 0) {

View File

@ -129,6 +129,7 @@ export const util = {
metaDataSettingJSONToMetaDataTableData(
data: IMetaDataReturnJSONSettings,
): IMetaDataTableData[] {
if (!Array.isArray(data)) return [];
return data.map((item) => {
return {
field: item.key,

View File

@ -216,7 +216,7 @@ export default function Dataset() {
{reparseDialogVisible && (
<ReparseDialog
// hidden={isZeroChunk || isRunning}
hidden={false}
hidden={true}
handleOperationIconClick={handleOperationIconClick}
chunk_num={0}
visible={reparseDialogVisible}

View File

@ -72,7 +72,7 @@ export function ParsingStatusCell({
const isRunning = isParserRunning(run);
const isZeroChunk = chunk_num === 0;
const handleOperationIconClick = (option: {
const handleOperationIconClick = (option?: {
delete: boolean;
apply_kb: boolean;
}) => {
@ -183,8 +183,8 @@ export function ParsingStatusCell({
)}
{reparseDialogVisible && (
<ReparseDialog
// hidden={isZeroChunk || isRunning}
hidden={false}
hidden={isZeroChunk || isRunning}
// hidden={false}
handleOperationIconClick={handleOperationIconClick}
chunk_num={chunk_num}
visible={reparseDialogVisible}

View File

@ -7,18 +7,18 @@ import {
import { Checkbox } from '@/components/ui/checkbox';
import { DialogProps } from '@radix-ui/react-dialog';
import { t } from 'i18next';
import { useCallback, useState } from 'react';
import { memo, useCallback, useEffect, useRef } from 'react';
export const ReparseDialog = ({
export const ReparseDialog = memo(
({
handleOperationIconClick,
chunk_num,
hidden = false,
visible = true,
hideModal,
children,
}: DialogProps & {
chunk_num: number;
handleOperationIconClick: (options: {
handleOperationIconClick: (options?: {
delete: boolean;
apply_kb: boolean;
}) => void;
@ -26,25 +26,31 @@ export const ReparseDialog = ({
hideModal: () => void;
hidden?: boolean;
}) => {
const [formInstance, setFormInstance] = useState<DynamicFormRef | null>(null);
// const [formInstance, setFormInstance] = useState<DynamicFormRef | null>(
// null,
// );
const formCallbackRef = useCallback((node: DynamicFormRef | null) => {
if (node) {
setFormInstance(node);
console.log('Form instance assigned:', node);
} else {
console.log('Form instance removed');
}
}, []);
// const formCallbackRef = useCallback((node: DynamicFormRef | null) => {
// if (node) {
// setFormInstance(node);
// console.log('Form instance assigned:', node);
// } else {
// console.log('Form instance removed');
// }
// }, []);
const formCallbackRef = useRef<DynamicFormRef>(null);
const handleCancel = useCallback(() => {
// handleOperationIconClick(false);
hideModal?.();
formInstance?.reset();
}, [formInstance]);
// formInstance?.reset();
formCallbackRef?.current?.reset();
}, [formCallbackRef, hideModal]);
const handleSave = useCallback(async () => {
const instance = formInstance;
// const instance = formInstance;
const instance = formCallbackRef?.current;
if (!instance) {
console.error('Form instance is null');
return;
@ -60,23 +66,13 @@ export const ReparseDialog = ({
apply_kb: formValues.apply_kb,
});
}
}, [formInstance, handleOperationIconClick]);
}, [formCallbackRef, handleOperationIconClick]);
// useEffect(() => {
// if (!hidden) {
// const timer = setTimeout(() => {
// if (!formInstance) {
// console.warn(
// 'Form ref is still null after component should be mounted',
// );
// } else {
// console.log('Form ref is properly set');
// }
// }, 1000);
// return () => clearTimeout(timer);
// }
// }, [hidden, formInstance]);
useEffect(() => {
if (hidden) {
handleOperationIconClick();
}
}, []);
return (
<ConfirmDeleteDialog
@ -110,7 +106,9 @@ export const ReparseDialog = ({
/>
<span className="ml-2">
{chunk_num > 0
? t(`knowledgeDetails.redo`, { chunkNum: chunk_num })
? t(`knowledgeDetails.redo`, {
chunkNum: chunk_num,
})
: t('knowledgeDetails.redoAll')}
</span>
</div>
@ -152,4 +150,5 @@ export const ReparseDialog = ({
{/* {children} */}
</ConfirmDeleteDialog>
);
};
},
);

View File

@ -54,7 +54,7 @@ export function useBulkOperateDataset({
);
const handleRunClick = useCallback(
(option: { delete: boolean; apply_kb: boolean }) => {
(option?: { delete: boolean; apply_kb: boolean }) => {
runDocument(1, option);
},
[runDocument],

View File

@ -10,7 +10,7 @@ export const useHandleRunDocumentByIds = (id: string) => {
const handleRunDocumentByIds = async (
documentId: string,
isRunning: boolean,
option: { delete: boolean; apply_kb: boolean },
option?: { delete: boolean; apply_kb: boolean },
) => {
if (isLoading) {
return;