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

@@ -16,6 +16,7 @@ import {
import i18n from '@/locales/config';
import { EMPTY_METADATA_FIELD } from '@/pages/dataset/dataset/use-select-filters';
import kbService, {
changeDocumentsStatus,
createDocument,
deleteDocument,
documentFilter,
@@ -252,15 +253,19 @@ export const useSetDocumentStatus = () => {
mutationFn: async ({
status,
documentId,
datasetId,
}: {
status: boolean;
documentId: string | string[];
datasetId: string;
}) => {
const ids = Array.isArray(documentId) ? documentId : [documentId];
const { data } = await kbService.documentChangeStatus({
const { data } = await changeDocumentsStatus({
kb_id: datasetId,
doc_ids: ids,
status: Number(status),
});
if (data.code === 0) {
message.success(i18n.t('message.modified'));
queryClient.invalidateQueries({

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 });
}}
/>
);

View File

@@ -372,6 +372,17 @@ export const updateDocumentMetaDataConfig = ({
data: { ...data },
});
export const changeDocumentsStatus = ({
kb_id,
doc_ids,
status,
}: {
kb_id: string;
doc_ids?: string[];
status: number;
}) =>
request.post(api.documentChangeStatus(kb_id), { data: { doc_ids, status } });
export const listDataPipelineLogDocument = (
datasetId: string,
params?: Record<string, any>,

View File

@@ -113,7 +113,8 @@ export default {
// document
getDocumentList: (datasetId: string) =>
`${restAPIv1}/datasets/${datasetId}/documents`,
documentChangeStatus: `${webAPI}/document/change_status`,
documentChangeStatus: (datasetId: string) =>
`${restAPIv1}/datasets/${datasetId}/documents/batch-update-status`,
documentDelete: (datasetId: string) =>
`${restAPIv1}/datasets/${datasetId}/documents`,
documentRename: (datasetId: string, documentId: string) =>