附件组件在线查看平台默认的是用浏览器的另一个页签打开的,如果需要在当前页面中显示可以如下操作
1.js定义的define中引用
var officeViewer = require('$UI/system/components/justep/docCommon/officeViewer');
var $OV = officeViewer.$OV;
var OV = officeViewer.OV;
2.在.w中定义一个div
<div xid="officeViewer" />
3.在div中创建ocx并打开文件
var data = this.comp("mainData");
var fFJ = data.getValue("fFJ");
var jsonList = eval("(" + fFJ + ")");// 获取附件组件的json值
var url = "";
var type = "";
if (jsonList.length > 0) {// 遍历json获取相关的信息
for (var i = 0; i < jsonList.length; i++) {
var docPath = jsonList[0]["docPath"];
var fileID = jsonList[0]["fileID"];
var docName = jsonList[0]["docName"];
url = DocUtils.InnerUtils.getdocServerAction({
"docPath" : docPath,
urlPattern : "/repository/file/view/" + fileID + "/last/content",
isFormAction : false,
context : this.getContext(),
useCookie : false
});// 调用API获取url
url = url.indexOf(window.location.protocol) < 1 ? url : window.location.protocol + "//" + window.location.host + url; //拼接最终需要的url
var fileType = docName.substring(docName.indexOf("."));// 获取文件的后缀判断设置不同的类型
if (fileType == ".doc" || fileType == ".docx")
type = "Word.Application";
else if (fileType == ".xls" || fileType == ".xlsx")
type = "Excel.Application"
}
}
var divID = this.getIDByXID("officeViewer");
var ocxID = divID + "_ocx";
if (event.tab.select().find("a").html() == 'officeViewer') {
if (!$(".officeViewr").length > 0) {
$("#" + divID).append('<div class="officeViewr" style="overflow:hidden;width:100%;height:100%;"><div style="overflow:auto;width:100%;height:100%;" id="' + ocxID + '"></div></div>');
}
$('#' + ocxID).attr('showToolbar', false);// 隐藏工具栏
$OV(ocxID).CreateOfficeViewer('100%', '100%');
var officeObj = $OV(ocxID);
officeObj.ShowMenubar(false);// 隐藏菜单栏
if (type && !officeObj.isOpened()) {
officeObj.Open(url, type);
} else
return;
}

评一波