2024-08-31 01:03:37 +08:00

167 lines
6.9 KiB
HTML
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<title><?php echo clear_html($fileName);?></title>
<link rel="icon" href="<?php $this->url('static/images/icon.png');?>">
<script>var kodSdkConfig = {api:'<?php echo APP_HOST;?>'};</script>
<?php $this->link('app/dist/sdk.js','static');?>
<!-- <?php $this->link('style/dist/main.css','static');?> -->
<?php $this->link('style/lib/font-icon/style.css','static');?>
<?php $this->link('static/weboffice/page.css');?>
<script>
var BASE_URL = "<?php echo $this->pluginHost.'static/';?>";
var BASE_URL_API = "<?php echo $this->pluginApi;?>";
var FILE_INFO = {
link: '<?php echo clear_quote($fileUrl);?>', // 获取url
name: '<?php echo clear_quote($fileName);?>', // 文件名
path: '<?php echo clear_quote($filePath);?>', // 文件路径;有则可以直接保存;没有且canWrite则可以另存为;
app: '<?php echo clear_quote($fileApp);?>', // 文件打开方式
ext: '<?php echo clear_quote($fileExt);?>', // 文件后缀
write: '<?php echo clear_quote($canWrite);?>', // 是否可写; 可写才能编辑;
};
var lang = {edit:"<?php echo LNG('common.edit');?>"}
</script>
</head>
<body class="weboffice-page loading">
<div class="edit-btn">
<button><i class="font-icon ri-edit-line-2"></i><?php echo LNG('common.edit');?></button>
</div>
<div class="page-box <?php echo 'kod-' . clear_quote($fileApp) . '-box';?>">
<div id="output"></div>
</div>
<div id="msgbox" class="hidden">
<!-- <div id="title">打开失败!</div> -->
<div id="title">
<span style="font-size:20px;">Office阅读器</span>
<span style="font-size:14px;margin-left:5px;"> - WebOffice</span>
</div>
<div id="message"></div>
<div id="info"></div>
</div>
<?php $this->link('static/weboffice/page.js');?>
<?php switch(clear_quote($fileApp)) {
case 'mammothjs':
// $this->link('static/weboffice/mammothjs/mammoth.browser.kod.1.4.20--.js');
$this->link('static/weboffice/mammothjs/mammoth.browser.kod.1.4.20.min.js');
$this->link('static/weboffice/mammothjs/index.css');
$this->link('static/weboffice/mammothjs/index.js');
break;
case 'luckysheet':
$this->link('static/weboffice/luckysheet/plugins/css/pluginsCss.css');
$this->link('static/weboffice/luckysheet/plugins/plugins.css');
$this->link('static/weboffice/luckysheet/css/luckysheet.css');
$this->link('static/weboffice/luckysheet/assets/iconfont/iconfont.min.css');
$this->link('static/weboffice/luckysheet/index.css');
$this->link('static/weboffice/luckysheet/plugins/js/plugin.js');
$this->link('static/weboffice/luckysheet/luckysheet.umd.js');
$this->link('static/weboffice/luckysheet/luckyexcel.umd.min.js');
$this->link('static/weboffice/sheetjs/xlsx.core.min.js');
$this->link('static/weboffice/luckysheet/utils.js');
$this->link('static/weboffice/luckysheet/index.js');
break;
case 'pptxjs':
$this->link('static/weboffice/pptxjs/css/pptxjs.css');
$this->link('static/weboffice/pptxjs/css/nv.d3.min.css');
$this->link('static/weboffice/pptxjs/index.css');
$this->link('static/weboffice/pptxjs/js/jquery-1.11.3.min.js');
$this->link('static/weboffice/pptxjs/js/jszip.min.js');
$this->link('static/weboffice/pptxjs/js/filereader.js');
$this->link('static/weboffice/pptxjs/js/d3.min.js');
$this->link('static/weboffice/pptxjs/js/nv.d3.min.js');
$this->link('static/weboffice/pptxjs/js/dingbat.js');
$this->link('static/weboffice/pptxjs/js/pptxjs.kod.1.21.1.min.js');
// $this->link('static/weboffice/pptxjs/js/pptxjs.kod.1.21.1--.js');
$this->link('static/weboffice/pptxjs/js/divs2slides.min.js');
// $this->link('static/weboffice/pptxjs/js/jquery.fullscreen-min.js');
$this->link('static/weboffice/pptxjs/utils.js');
$this->link('static/weboffice/pptxjs/index.js');
break;
case 'sheetjs':
$this->link('static/weboffice/sheetjs/index.css');
$this->link('static/weboffice/sheetjs/xlsx.core.min.js');
// $this->link('static/weboffice/sheetjs/ppt.core.min.js');
$this->link('static/weboffice/sheetjs/index.js');
break;
default:break;
}?>
<script>
$(function(){
// 非wb方式添加到iframe中
var app = FILE_INFO.app;
if (app == 'yz' || app == 'lb' || app == 'ol') {
$('body').addClass(app);
// var sandbox = 'allow-forms allow-popups allow-scripts allow-modals allow-same-origin';
// $('#output').html('<iframe src="'+FILE_INFO.link+'" frameborder="0" sandbox="'+sandbox+'"></iframe>');
$('#output').html('<iframe src="'+FILE_INFO.link+'" frameborder="0" ></iframe>');
// wb方式在数据加载完成后添加
$('#output>iframe').on('load', function() {
setTimeout(function(){$('body.weboffice-page').addClass('loaded');}, 1000);
});
}
// 添加编辑按钮:弹窗打开
var editBtnDialog = function(){
var _$ = false;
try {_$ = window.parent.$;}catch(error){return;}
var $dialog = _$(window.frameElement).parents('.aui-content');
var data = base64Encode(jsonEncode({path:FILE_INFO.path, name:FILE_INFO.name, ext:FILE_INFO.ext}));
var $button = _$('<div class="officeViewer-edit-btn">\
<button data="'+data+'"><i class="font-icon ri-edit-line-2"></i>'+lang.edit+'</button></div>').appendTo($dialog);
$button.find('button').trigger('click');
}
// 添加编辑按钮:页面打开
var editBtnPage = function(){
var appRes = null;
$.ajax({
url:"<?php echo $this->pluginApi.'editApp';?>",
data: {path: FILE_INFO.path, name: FILE_INFO.name, ext: FILE_INFO.ext},
dataType:'json',
success:function(result){
appRes = result;
if (result.code){
$('body.weboffice-page').addClass('edit-mode');
$('body.weboffice-page>.edit-btn button').attr('apptype', result.info);
}
}
});
// 点击编辑
$('body.weboffice-page>.edit-btn button').click(function(){
if (!appRes || !appRes.code) {
var code = appRes.info ? 'warning' : false;
return Tips.tips(appRes.data, code);
}
window.location.href = appRes.data;
});
}
$(document).bind('ready',function(){
if (FILE_INFO.write != '1'){return;}
window.frameElement ? editBtnDialog() : editBtnPage();
});
// wb解析错误时自动切换切换方式
window.webOfficeAutoChange = function (err) {
console.warn(err);
if (window.frameElement) {
var $dialog = $(window.frameElement).parents('.aui-dialog');
var $button = $dialog.find('.aui-content .officeViewer-edit-btn button');
} else {
var $button = $('body.weboffice-page>.edit-btn button');
}
// 解析失败时,优先以可编辑的方式(如果有)打开
if ($button.attr('apptype')) return $button.click();
// 切换其他方式
// page.showTips('正在加载...'); // 解析失败,正在切换...
window.location.href = location.href+'&skip=wb';
return false;
}
});
</script>
</body>
</html>