import type { fileItem } from '#/components/Jnpf/upload/src/props';
|
|
import { defHttp } from '#/api/request';
|
|
export interface UploadEditContext {
|
modelId: string;
|
dmsAudit?: boolean;
|
recordId?: string;
|
field: string;
|
parentField?: string;
|
rowId?: string;
|
menuId?: string;
|
taskId?: string;
|
}
|
export interface UploadEditDraft {
|
shared?: boolean;
|
dmsAudit?: boolean;
|
contentToken?: string;
|
metadataToken?: string;
|
watchToken?: string;
|
revisionTemporary?: boolean;
|
draftId: string;
|
revision: number;
|
files: fileItem[];
|
baselineFiles?: fileItem[];
|
editOrigins?: Record<string, string>;
|
canDiscard?: boolean;
|
editing?: boolean;
|
ownEditing?: boolean;
|
leaseId?: string;
|
mode?: 'edit' | 'review';
|
source?: fileItem;
|
}
|
export const getUploadOfficeOptions = () =>
|
defHttp.get<{ data: { editEnabled: boolean; previewEnabled: boolean } }>({ url: '/api/biz/onlyoffice/upload-file/options' }, { errorMessageMode: 'none' });
|
export const loadUploadEdit = (context: UploadEditContext) => defHttp.post<{ data: UploadEditDraft }>({ url: '/api/visualdev/UploadEdit/load', data: context });
|
export const changeUploadEdit = (
|
action: 'begin' | 'discard' | 'files',
|
data: {
|
contentToken?: string;
|
metadataToken?: string;
|
context?: UploadEditContext;
|
draftId: string;
|
fileId?: string;
|
files?: fileItem[];
|
mode?: 'edit' | 'review';
|
revision: number;
|
},
|
) => defHttp.post<{ data: UploadEditDraft }>({ url: `/api/visualdev/UploadEdit/${action}`, data });
|
export const beginTemporaryUploadEdit = (data: { context: UploadEditContext; fileId: string; files: fileItem[] }) =>
|
defHttp.post<{ data: UploadEditDraft }>({ url: '/api/visualdev/UploadEdit/temporary/begin', data });
|
export const cleanupTemporaryUploadEdit = (leaseId: string) => defHttp.post({ url: '/api/visualdev/UploadEdit/temporary/cleanup', data: { fileId: leaseId } });
|
|
export const loadSharedUploadEdit = (context: UploadEditContext, background = false) =>
|
defHttp.post<{ data: UploadEditDraft }>(
|
{ url: '/api/visualdev/UploadEdit/shared/load', data: context },
|
{ errorMessageMode: background ? 'none' : 'message' },
|
);
|
export const updateUploadEditLease = (action: 'close' | 'heartbeat', draftId: string, leaseId: string) =>
|
defHttp.post({ url: `/api/visualdev/UploadEdit/${action}`, data: { draftId, fileId: leaseId } }, { errorMessageMode: 'none' });
|
|
export const loadRevisionTemporaryResult = (leaseId: string) =>
|
defHttp.post<{ data: UploadEditDraft }>({ url: '/api/visualdev/UploadEdit/temporary/revision-result', data: { fileId: leaseId } });
|
|
/** One authorized read for all DMS attachment positions on a form. */
|
export const loadSharedUploadEdits = (contexts: UploadEditContext[]) =>
|
defHttp.post<{ data: UploadEditDraft[] }>({ url: '/api/visualdev/UploadEdit/shared/batch', data: contexts }, { errorMessageMode: 'none' });
|
|
export const watchSharedUploadEdits = (token: string, signal: AbortSignal) =>
|
defHttp.post<{ data: boolean }>({ url: '/api/visualdev/UploadEdit/shared/watch', data: { token }, signal, timeout: 30_000 }, { errorMessageMode: 'none' });
|