
OnlyOffice 应用实战企业云盘打开 Word 即编辑劳动合同范本也能在线改、自动留痕演示地址http://ruoyioffice.com | 源码1·GitHubruoyi-office | 源码2·GitCoderuoyi-office | 源码3·Giteeruoyi-office | 微信17156169080备注「RuoYi Office」HR 把《企业通用劳动合同模板.docx》丢进云盘共享文件夹同事却只能下载→本地改→再上传「V2 最终版」。OnlyOffice 接入企业系统后目标体验应是点开即编辑、编辑过程像 Word、关掉也不白改、历史可回看。本文按 RuoYi Office 企业云盘真实路径写「应用实战」——不重复讲 Docker 怎么起容器而讲从业务入口到回存留痕怎么跑通。▲ 应用链路云盘打开 → 签发 config → 在线编辑 / forcesave → 回调写版本底部「已保存」不等于业务已落库引言应用实战要解决什么集成文关心「服务能不能起来」应用文关心「员工敢不敢用」。现场反馈最多的四类问题现象根因往往是改了半小时关掉列表还是旧稿只信编辑器「已保存」没等 callback / forcesave预览历史版时把旧内容写成新版只读会话也回写没拦editable多人打开互相覆盖documentKey 规则不当缓存串会话正式劳动合同和共享范本搅在一起云盘协同 vs 合同套打职责没分开RuoYi Office 的用法可以概括成一句话云盘管「可协同的文件资产」合同模块管「正式套打成稿」。劳动合同「空白范本」放云盘在线改完全合理员工入职后的正式合同正文仍建议走合同中心。一、场景云盘里的劳动合同范本典型路径行政/HR 将企业通用劳动合同模板.docx上传到企业云盘「人事/模板」目录设置组织分享至少「可在线编辑」同事在列表点在线编辑→ 新标签打开/oa/cloud/file-editor?id…editable1浏览器内出现完整 OnlyOffice 功能区字体、样式、协作、保护等顶栏可开历史记录关页前系统会尽量强制回存▲ 实机独立编辑页内嵌 OnlyOffice打开《企业通用劳动合同模板》页脚显示「所有更改已保存」——下文会解释它和业务落库的差别▲ 入口在云盘列表预览走 editable0在线编辑走 editable1二、一次点击背后的四步应用视角列表「在线编辑」 → window.open 独立编辑页长时编辑不堵主界面 → GET /oa/file/onlyoffice/config documentKey 双 JWT callbackUrl → Document Server 用 download token 拉文件 → 用户编辑每约 90s / 开历史前 / 关页 → forcesave → POST callbackstatus2 关闭保存 / status6 强制保存 → 写对象存储 更新主表 URL createVersion(AUTOSAVE)对应后端能力集中在OaFileOnlyOfficeServiceImplbuildEditorConfig、forceSave、handleCallback。▲ 分享权限决定能不能进 edit只有「可在线编辑」及以上才会签发可写权限三、实战关键点相对「装好能打开」3.1 独立编辑页而不是弹窗 iframe长文档合同动辄十几页适合整页工作台。路由/oa/cloud/file-editor隐藏菜单、独立标签关闭时先forcesave/ 销毁编辑器再关窗口降低「关标签白改」概率。3.2 「所有更改已保存」≠ 业务版本已生成编辑器页脚的已保存多半表示内容进了 Document Server 缓存。业务库oa_file_version要等status2会话正常关闭保存status6forcesave 强制保存因此产品上要做定时 forcesave、开历史前先 forcesave、关页触发回存。否则用户截图「已保存」来投诉你却查不到版本行。3.3 双 JWT下载一条、回调一条Document Server 拉文件、回调业务时都不带登录 Cookie。实现上download token签在document.url临时拉取私有存储文件callback token带上fileId / userId / tenantId / editable回存时恢复租户避免版本落到tenant_id0// 回调必须带租户否则版本列表「写了却查不到」callbackToken 含 tenantId、bizId、editable、userId … callbackUrlbase/admin-api/oa/file/onlyoffice/callback?tokencallbackToken;customization.forcesavetrue;// 允许命令服务强制保存3.4 历史记录只读预览 恢复即新版本顶栏「历史记录」打开抽屉后带versionId打开 → 只读禁止 callback 写回恢复某一版 → 下载旧内容重新上传新 URL → 再createVersion(RESTORE)中间历史不断这和「把指针拨回旧版」不同审计更干净详见云盘版本专文。3.5 云盘范本 vs 合同正式稿企业云盘 OnlyOffice合同模块 OnlyOffice路由/oa/cloud/file-editor/contract/doc-editor等配置 API/oa/file/onlyoffice/config/contract/onlyoffice/config适合制度、范本、部门协同改稿占位套打、入职正式合同权限模型云盘分享权限合同单据权限应用落地时先问清这份劳动合同是「大家改范本」还是「某人入职成稿」——入口选错权限与归档都会拧巴。四、最小配置清单能跑起来# application.yml 片段根节点以工程配置为准onlyoffice:enabled:trueserver-url:https://your-ds-host# Document Serverjwt-secret:your-secret# 与 DS 一致callback-base-url:https://your-api-host# DS 能访问到的业务地址还要确认DS 能访问callback-base-url容器网络最常踩坑业务能访问server-url前端加载api.js文件扩展名在白名单docx/xlsx/pptx 等PDF 通常仅预览更细的 Docker / JWT / documentKey 设计见《OnlyOffice 集成实战》《云盘协同编辑》两篇本文只保证「应用路径正确」。五、推荐体验路径在线演示http://ruoyioffice.com/web/账号admin/admin123OA → 企业云盘上传或打开一份 docx如劳动合同范本。点在线编辑确认新标签出现 OnlyOffice可改文字、看页脚保存状态。点历史记录再改一版后刷新确认版本递增。用只读分享账号打开同一文件确认只能预览不能改。对照合同中心打开正式合同正文感受另一条业务链路。源码仓库GitHub | GitCode | Gitee常见问题FAQ为什么关浏览器标签会丢修改若未触发 forcesave / status2内容可能只在 DS 缓存。应依赖关页钩子 定时 forcesave并教育用户「页脚已保存≠业务版本」。能否多人同时改同一份范本OnlyOffice 支持协同会话前提是同一 documentKey 策略正确、网络与 DS 资源够用。高冲突文档建议拆副本或加锁流程。PDF 能在线编辑吗一般白名单仅预览。编辑请用 docx 等可写格式。和微信里常见「OnlyOffice 从零部署」文有何不同部署文解决「装上」本文解决「云盘业务怎么用、怎么不丢稿、范本和正式合同怎么分工」。两者互补。私有 MinIO 文件 DS 拉不到怎么办不要把桶直接暴露给 DS用带 download token 的业务中转下载本系统默认路径。结语OnlyOffice 应用实战的及格线不是 iframe 里出现编辑器而是打开路径清晰、权限控得住、关页不丢稿、历史可追溯、业务边界清楚云盘范本 vs 合同成稿。RuoYi Office 用独立编辑页 四端点 版本表把「像 Word 一样改」嵌进 OA 云盘——劳动合同模板只是其中一个高频场景。你们现在合同/制度是下载上传还是已经在线改有没有踩过「显示已保存其实没落库」欢迎评论区交流。想要体验 RuoYi Office 的强大功能在线演示http://ruoyioffice.com/web/账号 admin / admin123源码仓库GitHub | GitCode | Gitee技术咨询添加微信17156169080备注「RuoYi Office」⭐如果觉得不错请给个 Star 支持一下