import { defHttp } from '#/api/request';
|
|
enum Api {
|
Prefix = '/api/biz/onlyoffice',
|
}
|
|
export interface OnlyOfficeConfigQuery {
|
/** 业务归属记录 id,与 bizModule 一起用于权限判定与回调时反查上下文 */
|
bizDataId?: string;
|
/** 业务归属模块 */
|
bizModule?: string;
|
/** ONLYOFFICE 插件业务场景;为空时后端强制只读 */
|
bizScene?: string;
|
/** jnpf-file 的文件标识,annex 类型下即磁盘文件名 */
|
fileId: string;
|
/** 原始文件名,后端靠扩展名推导 documentType 并判断能否编辑 */
|
fileName: string;
|
/** 期望模式;后端可降级为 view(格式不可编辑 / 他人持锁 / 上次保存失败) */
|
mode?: 'edit' | 'view';
|
/** 文件存储类型,默认 annex */
|
fileType?: string;
|
/** DMS READ 裁决成功后签发的短期预览票据 */
|
dmsAccessTicket?: string;
|
}
|
|
/**
|
* 取编辑器配置。返回值直接喂 `new DocsAPI.DocEditor(id, config)`,不要在前端拼装或改写——
|
* 其中的 token 是后端对整份 config 的 HS256 签名,DS 会验签,改任何一个字段都会被拒。
|
* 前端只能追加 `events`(函数不参与序列化,不在签名范围内)。
|
*/
|
export function getOnlyOfficeConfig(data: OnlyOfficeConfigQuery) {
|
return defHttp.get({ url: `${Api.Prefix}/config`, data });
|
}
|
|
export interface OnlyOfficeSaveStatus {
|
lastSaveTime: null | number;
|
version: number;
|
}
|
|
export function getOnlyOfficeSaveStatus(fileId: string) {
|
return defHttp.get<OnlyOfficeSaveStatus>({ url: `${Api.Prefix}/save-status`, data: { fileId } });
|
}
|