Refactor: Doc batch change status (#14337)

### What problem does this PR solve?

Before migration
Web API: POST /v1/document/change_status

After consolidation, Restful API
POST /api/v1/datasets/<dataset_id>/documents/batch-update-status 

### Type of change

- [x] Refactoring
This commit is contained in:
Jack
2026-04-27 20:00:23 +08:00
committed by GitHub
parent c949096db0
commit a536980e22
10 changed files with 851 additions and 88 deletions

View File

@@ -28,6 +28,7 @@ import {
} from '@/components/ui/table';
import { UseRowSelectionType } from '@/hooks/logic-hooks/use-row-selection';
import { useFetchDocumentList } from '@/hooks/use-document-request';
import { useKnowledgeBaseContext } from '@/pages/dataset/contexts/knowledge-base-context';
import { getExtension } from '@/utils/document-util';
import { t } from 'i18next';
import { pick } from 'lodash';
@@ -88,12 +89,14 @@ export function DatasetTable({
// metaRecord,
// } = useSaveMeta();
const { showLog, logInfo, logVisible, hideLog } = useShowLog(documents);
const { knowledgeBase } = useKnowledgeBaseContext();
const columns = useDatasetTableColumns({
showChangeParserModal,
showRenameModal,
showManageMetadataModal,
showLog,
datasetId: knowledgeBase?.id,
});
const currentPagination = useMemo(() => {

View File

@@ -9,6 +9,7 @@ import {
useSetDocumentStatus,
} from '@/hooks/use-document-request';
import { IDocumentInfo } from '@/interfaces/database/document';
import { useKnowledgeBaseContext } from '@/pages/dataset/contexts/knowledge-base-context';
import {
LucideCircleX,
LucideCylinder,
@@ -34,6 +35,7 @@ export function useBulkOperateDataset({
rowSelection,
documents,
);
const { knowledgeBase } = useKnowledgeBaseContext();
const { runDocumentByIds } = useRunDocument();
const { setDocumentStatus } = useSetDocumentStatus();
@@ -85,9 +87,13 @@ export function useBulkOperateDataset({
const onChangeStatus = useCallback(
(enabled: boolean) => {
setDocumentStatus({ status: enabled, documentId: selectedRowKeys });
setDocumentStatus({
status: enabled,
documentId: selectedRowKeys,
datasetId: knowledgeBase?.id,
});
},
[selectedRowKeys, setDocumentStatus],
[selectedRowKeys, setDocumentStatus, knowledgeBase],
);
const handleEnableClick = useCallback(() => {

View File

@@ -26,6 +26,7 @@ type UseDatasetTableColumnsType = UseChangeDocumentParserShowType &
UseRenameDocumentShowType & {
showLog: (record: IDocumentInfo) => void;
showManageMetadataModal: (config: ShowManageMetadataModalProps) => void;
datasetId?: string;
};
export function useDatasetTableColumns({
@@ -33,6 +34,7 @@ export function useDatasetTableColumns({
showRenameModal,
showManageMetadataModal,
showLog,
datasetId,
}: UseDatasetTableColumnsType) {
const { t } = useTranslation('translation', {
keyPrefix: 'knowledgeDetails',
@@ -169,7 +171,7 @@ export function useDatasetTableColumns({
<Switch
checked={row.getValue('status') === '1'}
onCheckedChange={(e) => {
setDocumentStatus({ status: e, documentId: id });
setDocumentStatus({ status: e, documentId: id, datasetId });
}}
/>
);