预览附件
Some checks are pending
Java CI with Maven / build (11) (push) Waiting to run
Java CI with Maven / build (17) (push) Waiting to run
Java CI with Maven / build (8) (push) Waiting to run
yudao-ui-admin CI / build (14.x) (push) Waiting to run
yudao-ui-admin CI / build (16.x) (push) Waiting to run
Some checks are pending
Java CI with Maven / build (11) (push) Waiting to run
Java CI with Maven / build (17) (push) Waiting to run
Java CI with Maven / build (8) (push) Waiting to run
yudao-ui-admin CI / build (14.x) (push) Waiting to run
yudao-ui-admin CI / build (16.x) (push) Waiting to run
This commit is contained in:
parent
6758f6bffe
commit
cde20db807
@ -129,6 +129,26 @@ public class onlyofController {
|
|||||||
return new ResponseEntity<Object>("上传成功", HttpStatus.OK);
|
return new ResponseEntity<Object>("上传成功", HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预览文件的接口
|
||||||
|
*/
|
||||||
|
@GetMapping("/view")
|
||||||
|
@Operation(summary = "编辑文件")
|
||||||
|
public ModelAndView viewDocFile(@RequestParam String name, String userName, String userId ,String cDate ,String token) {
|
||||||
|
String cDate2 = "";
|
||||||
|
cDate2 = cDate.isEmpty() ? cDate : cDate + "\\";
|
||||||
|
String path = filePath+cDate2+name;
|
||||||
|
ModelAndView mav = new ModelAndView();
|
||||||
|
Document document = documentService.getDocumentToken(documentService.buildDocument(path, name),token,cDate);
|
||||||
|
mav.addObject("document", document);
|
||||||
|
if (!documentService.canEdit(document)) {
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
mav.addObject("documentEditParam", documentService.buildDocumentEditParamToken(userId, userName, name,token,cDate2));
|
||||||
|
mav.setViewName("viewer");
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑文件的接口
|
* 编辑文件的接口
|
||||||
* @param name
|
* @param name
|
||||||
|
@ -0,0 +1,175 @@
|
|||||||
|
var Editor = function () {
|
||||||
|
var docEditor;
|
||||||
|
|
||||||
|
var innerAlert = function (message) {
|
||||||
|
if (console && console.log)
|
||||||
|
console.log(message);
|
||||||
|
};
|
||||||
|
|
||||||
|
var onAppReady = function () {
|
||||||
|
innerAlert("文档编辑已就绪~");
|
||||||
|
};
|
||||||
|
|
||||||
|
var onDocumentStateChange = function (event) {
|
||||||
|
var title = document.title.replace(/\*$/g, "");
|
||||||
|
document.title = title + (event.data ? "*" : "");
|
||||||
|
};
|
||||||
|
|
||||||
|
var onError = function (event) {
|
||||||
|
if (event) {
|
||||||
|
innerAlert(event.data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var onOutdatedVersion = function (event) {
|
||||||
|
//TODO
|
||||||
|
location.reload(true);
|
||||||
|
};
|
||||||
|
var onAppReady = function() {
|
||||||
|
console.log("ONLYOFFICE Document Editor is ready");
|
||||||
|
};
|
||||||
|
var onCollaborativeChanges = function () {
|
||||||
|
console.log("The document changed by collaborative user");
|
||||||
|
};
|
||||||
|
var onDocumentReady = function() {
|
||||||
|
console.log("Document is loaded");
|
||||||
|
};
|
||||||
|
var onDocumentStateChange = function (event) {
|
||||||
|
if (event.data) {
|
||||||
|
console.log("The document changed");
|
||||||
|
// docEditor.downloadAs();
|
||||||
|
} else {
|
||||||
|
console.log("Changes are collected on document editing service");
|
||||||
|
//
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var onDownloadAs = function (event) {
|
||||||
|
console.log("ONLYOFFICE Document Editor create file: " + event.data);
|
||||||
|
window.top.postMessage(event.data);
|
||||||
|
createAndDownloadFile("test.docx",event.data)
|
||||||
|
};
|
||||||
|
window.addEventListener('message',function(e){
|
||||||
|
console.log(e.data)
|
||||||
|
if (e.data=="downloadAs") {
|
||||||
|
docEditor.downloadAs();
|
||||||
|
}
|
||||||
|
},false)
|
||||||
|
|
||||||
|
$("#insertImage").click(function(event) {
|
||||||
|
console.log("ONLYOFFICE Document Editor insertImage: "+ event.data);
|
||||||
|
docEditor.insertImage({
|
||||||
|
"fileType": "png",
|
||||||
|
"url": "http://192.168.0.58:20056/attachment/20190728测试上传文件名修改/2020January/1580363537940306800_small.png"
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
var onRequestInsertImage = function(event) {
|
||||||
|
console.log("ONLYOFFICE Document Editor insertImage" + event.data);
|
||||||
|
docEditor.insertImage({
|
||||||
|
"fileType": "png",
|
||||||
|
"url": "http://192.168.0.58:20056/attachment/20190728测试上传文件名修改/2020January/1580363537940306800_small.png"
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var onError = function (event) {
|
||||||
|
console.log("ONLYOFFICE Document Editor reports an error: code " + event.data.errorCode + ", description " + event.data.errorDescription);
|
||||||
|
};
|
||||||
|
var onOutdatedVersion = function () {
|
||||||
|
location.reload(true);
|
||||||
|
};
|
||||||
|
var onRequestEditRights = function () {
|
||||||
|
console.log("ONLYOFFICE Document Editor requests editing rights");
|
||||||
|
// document.location.reload();
|
||||||
|
var he=location.href.replace("view","edit");
|
||||||
|
location.href=he;
|
||||||
|
};
|
||||||
|
|
||||||
|
//历史版本保留1个月。比如Unix时间戳(Unix timestamp)expires=1524547423
|
||||||
|
var onRequestHistory = function() {
|
||||||
|
};
|
||||||
|
|
||||||
|
var onRequestHistoryClose = function() {
|
||||||
|
document.location.reload();
|
||||||
|
};
|
||||||
|
var getUrlParam = function (name) {
|
||||||
|
//构造一个含有目标参数的正则表达式对象
|
||||||
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||||
|
//匹配目标参数
|
||||||
|
var r = window.location.search.substr(1).match(reg);
|
||||||
|
//返回参数值
|
||||||
|
if (r != null) {
|
||||||
|
return decodeURI(r[2]);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
var getDocumentConfig = function (document) {
|
||||||
|
if (document) {
|
||||||
|
return {
|
||||||
|
"document": document
|
||||||
|
};
|
||||||
|
}
|
||||||
|
innerAlert("文档未指定!");
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
var onRequestHistoryData = function() {}
|
||||||
|
var сonnectEditor = function (document, documentEditParam) {
|
||||||
|
|
||||||
|
var config = getDocumentConfig(document);
|
||||||
|
console.log(document)
|
||||||
|
console.log(documentEditParam)
|
||||||
|
config.width = "100%";
|
||||||
|
config.height = "100%";
|
||||||
|
config.events = {
|
||||||
|
"onAppReady": onAppReady,
|
||||||
|
"onDocumentStateChange": onDocumentStateChange,
|
||||||
|
"onError": onError,
|
||||||
|
"onOutdatedVersion": onOutdatedVersion
|
||||||
|
};
|
||||||
|
//config.documentType = ""+document.fileType
|
||||||
|
config.editorConfig = {
|
||||||
|
"lang": "zh-CN",
|
||||||
|
"mode": "view",
|
||||||
|
"recent": [],
|
||||||
|
// 自定义一些配置
|
||||||
|
"customization": {
|
||||||
|
"chat": true, // 禁用聊天菜单按钮
|
||||||
|
"commentAuthorOnly": false, // 仅能编辑和删除其注释
|
||||||
|
"comments": false, // 隐藏文档注释菜单按钮
|
||||||
|
"compactHeader": false, // 隐藏附加操作按钮
|
||||||
|
"compactToolbar": false, // 完整工具栏(true代表紧凑工具栏)
|
||||||
|
"feedback": {
|
||||||
|
"visible": true // 隐藏反馈按钮
|
||||||
|
},
|
||||||
|
"forcesave": false, // true 表示强制文件保存请求添加到回调处理程序
|
||||||
|
"goback": false,/*{
|
||||||
|
"blank": true, // 转到文档时,在新窗口打开网站(false表示当前窗口打开)
|
||||||
|
"text": "转到文档位置(可以考虑放文档打开源页面)",
|
||||||
|
// 文档打开失败时的跳转也是该地址
|
||||||
|
"url": "http://www.lezhixing.com.cn"
|
||||||
|
},*/
|
||||||
|
"help": false, // 隐藏帮助按钮
|
||||||
|
"hideRightMenu": false, // 首次加载时隐藏右侧菜单(true 为显示)
|
||||||
|
"showReviewChanges": false, // 加载编辑器时自动显示/隐藏审阅更改面板(true显示 false隐藏)
|
||||||
|
"toolbarNoTabs": false, // 清楚地显示顶部工具栏选项卡(true 代表仅突出显示以查看选择了哪一个)
|
||||||
|
"zoom": 100 // 定义文档显示缩放百分比值
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
$.extend(config.editorConfig, documentEditParam);
|
||||||
|
console.log(config)
|
||||||
|
|
||||||
|
|
||||||
|
docEditor = new DocsAPI.DocEditor("iframeEditor",config);
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
init: function (document, documentEditParam) {
|
||||||
|
console.log("-----сonnectEditor-----")
|
||||||
|
сonnectEditor(document, documentEditParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}();
|
@ -0,0 +1,97 @@
|
|||||||
|
var Viewer = function() {
|
||||||
|
var docEditor;
|
||||||
|
|
||||||
|
var innerAlert = function (message) {
|
||||||
|
if (console && console.log)
|
||||||
|
console.log(message);
|
||||||
|
};
|
||||||
|
|
||||||
|
var onAppReady = function () {
|
||||||
|
innerAlert("文档查看已就绪~");
|
||||||
|
};
|
||||||
|
|
||||||
|
var onDocumentStateChange = function (event) {
|
||||||
|
var title = document.title.replace(/\*$/g, "");
|
||||||
|
document.title = title + (event.data ? "*" : "");
|
||||||
|
};
|
||||||
|
|
||||||
|
var onError = function (event) {
|
||||||
|
if (event) {
|
||||||
|
innerAlert(event.data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var onOutdatedVersion = function (event) {
|
||||||
|
location.reload(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
var getUrlParam = function (name) {
|
||||||
|
//构造一个含有目标参数的正则表达式对象
|
||||||
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||||
|
//匹配目标参数
|
||||||
|
var r = window.location.search.substr(1).match(reg);
|
||||||
|
//返回参数值
|
||||||
|
if (r != null) {
|
||||||
|
return decodeURI(r[2]);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
var getDocumentConfig = function (document) {
|
||||||
|
if (document) {
|
||||||
|
return {
|
||||||
|
"document": document
|
||||||
|
};
|
||||||
|
}
|
||||||
|
innerAlert("文档未指定!");
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
var сonnectEditor = function (document) {
|
||||||
|
var config = getDocumentConfig(document);
|
||||||
|
config.width = "100%";
|
||||||
|
config.height = "100%";
|
||||||
|
config.events = {
|
||||||
|
"onAppReady": onAppReady,
|
||||||
|
"onDocumentStateChange": onDocumentStateChange,
|
||||||
|
"onError": onError,
|
||||||
|
"onOutdatedVersion": onOutdatedVersion
|
||||||
|
};
|
||||||
|
config.editorConfig = {
|
||||||
|
"lang": "zh-CN",
|
||||||
|
"mode": "view",
|
||||||
|
"recent": [],
|
||||||
|
// 自定义一些配置
|
||||||
|
"customization": {
|
||||||
|
"chat": false, // 禁用聊天菜单按钮
|
||||||
|
"commentAuthorOnly": true, // 仅能编辑和删除其注释
|
||||||
|
"comments": false, // 隐藏文档注释菜单按钮
|
||||||
|
"compactHeader": false, // 隐藏附加操作按钮
|
||||||
|
"compactToolbar": false, // 完整工具栏(true代表紧凑工具栏)
|
||||||
|
"feedback": {
|
||||||
|
"visible": false // 隐藏反馈按钮
|
||||||
|
},
|
||||||
|
"forcesave": false, // true 表示强制文件保存请求添加到回调处理程序
|
||||||
|
"goback": false,/*{
|
||||||
|
"blank": true, // 转到文档时,在新窗口打开网站(false表示当前窗口打开)
|
||||||
|
"text": "转到文档位置(可以考虑放文档打开源页面)",
|
||||||
|
// 文档打开失败时的跳转也是该地址
|
||||||
|
"url": "http://www.lezhixing.com.cn"
|
||||||
|
},*/
|
||||||
|
"help": false, // 隐藏帮助按钮
|
||||||
|
"hideRightMenu": false, // 首次加载时隐藏右侧菜单(true 为显示)
|
||||||
|
"showReviewChanges": false, // 加载编辑器时自动显示/隐藏审阅更改面板(true显示 false隐藏)
|
||||||
|
"toolbarNoTabs": false, // 清楚地显示顶部工具栏选项卡(true 代表仅突出显示以查看选择了哪一个)
|
||||||
|
"zoom": 100 // 定义文档显示缩放百分比值
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
docEditor = new DocsAPI.DocEditor("iframeEditor", config);
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
init : function(document) {
|
||||||
|
сonnectEditor(document);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}();
|
@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org" lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<title th:text="${document.title}"></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" type="text/css" th:href="@{/css/viewer.css}">
|
||||||
|
</head>
|
||||||
|
<!--//整个文件就是前端打开的编辑窗口的配置-->
|
||||||
|
<body>
|
||||||
|
<div class="form">
|
||||||
|
<div id="iframeEditor"></div>
|
||||||
|
<h1 th:text="${document.title}">Document Title</h1>
|
||||||
|
<pre th:text="${documentEditParam}">Document Edit Param</pre>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" th:src="@{/js/jquery-1.8.2.js}"></script>
|
||||||
|
<script type="text/javascript" th:src="@{${documentServerApiJs}}"></script>
|
||||||
|
<script type="text/javascript" th:src="@{/js/viewer.js}"></script>
|
||||||
|
<!-- 先通过 th:inline=“javascript” 添加到标签,这样js代码即可访问model中的属性 -->
|
||||||
|
<script th:inline="javascript">
|
||||||
|
// js 中可以通过“[[${xxx}]]” 格式获得实际的值
|
||||||
|
Editor.init([[${document}]], [[${documentEditParam}]]);
|
||||||
|
</script>
|
||||||
|
<!-- <script type="text/javascript" src="http://192.168.1.15:7878/web-apps/apps/api/documents/api.js"></script>-->
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user