iweb2015.jsp 8.93 KB
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="weaver.general.Util,weaver.conn.RecordSet"%>
<%@page import="com.engine.doc.util.IWebOfficeConf"%>
<%@ page import="com.engine.doc.util.DocPlugUtil" %>
<%
String _mRecordID = Util.null2String(request.getParameter("mRecordID"));
int mRecordID = 0;
if(_mRecordID.contains("_")){
	RecordSet imagefileRs = new RecordSet();
	int versionid = Util.getIntValue(_mRecordID.split("_")[0]);
	int docid = Util.getIntValue(_mRecordID.split("_")[1]);
	imagefileRs.executeQuery("select imagefileid from DocImageFile where docid=? and versionid=?",docid,versionid);
	if(imagefileRs.next()){
		mRecordID = imagefileRs.getInt("imagefileid");
	}
}else{
	mRecordID = Util.getIntValue(_mRecordID);
}
String mFileType = Util.null2String(request.getParameter("mFileType"));
String mUserName = user.getLastname();

String officeType = IWebOfficeConf.getType();
//if("yozoOffice".equals(officeType)){
//	mFileType = ".uot";
//}

//boolean office2015 = "1".equals(Util.null2String(new RecordSet().getPropValue("weaver_iweboffice2015","isUseIweboffice2015")));
	boolean office2015 = "1".equals(Util.null2String(DocPlugUtil.getoffice215Set().get("isopen")));
if(office2015 && !officeType.equals("iweboffice2015")){
	//判断客户端是否Windows操作系统
	if(request.getHeader("user-agent").contains("Windows")){
		officeType = "iweboffice2015";
	}
}
boolean __isViewer = !"1".equals(request.getParameter("mEditType"));

boolean __isEdit = "1".equals(request.getParameter("mEditType")) || "-1,0,1,1,0,0,1".equals(request.getParameter("mEditType"));
%>
<iframe id="webOffice" width="100%" height="100%" frameborder="0" ></iframe>
<input type="hidden" id="WebOffice"/>
<script src="/cloudstore/resource/pc/jquery/jquery-1.8.3.min.js"></script>
<script>
          function onRequestDocLoad(obj){
              	var params = new Object();	
				params.prop_showTitleBar="0";
				params.prop_showToolBar="1";
				params.prop_showMenu="1";
				params.prop_fileId="<%=mRecordID > 0 ? mRecordID : ""%>";
				params.prop_type = window.mouldType ? window.mouldType : "document";
				params.prop_fileName="test" + "<%=mFileType%>";
				
				params.prop_fileType=window.mouldType && "yozoOffice" == "<%=officeType%>" &&  "<%=mFileType%>" == ".doc" ? ".uot" : "<%=mFileType%>";   //永中office显示编辑模板保存为.uot
				params.prop_compatible="";
				params.prop_userName = "<%=mUserName%>";
				//params.menu_saveDocumentNotExit="1";
				
				var __isEdit = <%=__isEdit%>;
				
				if(__isEdit){
					//打开本地文件
					params.menu_openLocalFile="1";
					//存为本地文件
					params.menu_saveAsLocalFile="1";
				
				}else{
					//打印
					if(<%="true".equals(request.getParameter("canPrint"))%>){
						params.menu_printdoc = "1";
					}
				
				}
				//显示或隐藏痕迹
				params.menu_hideOrShowTrace = "1";
				//签名印章
				params.menu_openSignature = "1";
			    params.prop_userId = "<%=user.getUID()%>";
				//保存文档到服务器(退出,跳转进行文档赋权,保存等一系列操作)
				//params.menu_saveDocumentExit = "1";
				//保存为新版本
				//params.menu_saveVersion = "0";
				//打开文档版本
				//params.menu_openVersion = "0";
			
				//接受修订
				//params.menu_acceptAll = "0";
				//页面设置
				params.menu_pageSet = "1";
				
				<%if("iweboffice2015".equals(officeType) && "4".equals(request.getParameter("mEditType"))){%>
				     params.prop_editType = 4;
				<%}%>
				<%if("iweboffice2015".equals(officeType) && "0".equals(request.getParameter("mEditType"))){%>
				     params.prop_editType = 0;
				<%}%>
			
				try{
				   initWebOffice(params);
			        //编辑模板书签替换
			        <%if(mRecordID > 0){%>
			            setTimeout("useEditTemplate()",2000);
			        <%}%>
				}catch(e){
					if(window.console){
						window.console.log(e);
					}
				}  
				<%if("iweboffice2015".equals(officeType)){%>
					<%if(mRecordID > 0 && __isEdit){%>
					    //开启必须保留痕迹
				        keepRevisions(true);
				        //痕迹显示控制
				        ShowRevisions(true);
				        
			        <%}else{%>
			        	keepRevisions(false);
			        	ShowRevisions(false);
			        <%}%>
			     <%}else{%>
			     		params.prop_hideRevision = "<%=mRecordID > 0 ? "0" : "1"%>";
			     <%}%>
          }
          
          function useEditTemplate(){
          }
          
          function toSaveDocument(obj){
			return SaveDocument(obj);
		  }
          
          function SaveDocument(obj){
          	if("<%=officeType%>" == "iweboffice2015"){
          		obj = obj ? obj : {};
          	}
          	var vl = save(obj);
          	
			if(vl){
				return {
					off_status : 1,
					off_name : vl
				}
			}else{
				return {
					off_status : 0
				}
			}
          }
          
          function saveBookmarks(){
          	if("<%=mFileType%>" == ".xls"){
				return true;
			}
          	var fieldstr = "";
          	if("<%=officeType%>" == "iwebofficeChina"){
	             var WebOffice = document.getElementById("webOffice").contentWindow.document.getElementById('WebOffice');
				 fieldstr = WebOffice.getAllDocumentField();
			 }else if("<%=officeType%>" == "webwps" || "<%=officeType%>" == "yozoOffice"){
			  	var WebOffice = document.getElementById("webOffice").contentWindow.app;
			 	fieldstr = WebOffice.getAllDocumentField();
			 }else if("<%=officeType%>" == "iweboffice2015"){
			 	//var bookmarks = document.getElementById("webOffice").contentWindow.getBookMarksAndValues(); 
			 	//var bookmarkMap = {};
			 	//if(bookmarks != ""){
			 	//	bookmarks = bookmarks.replace(/\r/g,"");
			 	//	bookmarkMap = JSON.parse(bookmarks);//eval("('" + bookmarks + "')"); 
			 	//}
			 	var bookmarkMap = document.getElementById("webOffice").contentWindow.getBookMarksMap()
				var params = {status : 0,bookMarkCounts : 0};
				if(bookmarkMap){
					var i = 0;
					for(key in bookmarkMap){
					//	console.info(key)
						params['bookMarkField' + i] = key;
						params['bookMarkValue' + i] = bookmarkMap[key];
						i++;
					}
					params.bookMarkCounts = i;
				}
				
				if(window.isViewMould && "<%=mFileType%>" == ".doc" && (!bookmarkMap || bookmarkMap.Content == undefined)){
	          	 	return false;
	          	 }
				
				params.status = 1;
				return params;
			 		
			 }
          	 var params = {status : 0,bookMarkCounts : 0};
          	 if(window.isViewMould && "<%=mFileType%>" == ".doc" && fieldstr.indexOf("Content") == -1){
          	 	return false;
          	 }
          	 
          	 if(fieldstr && fieldstr != ""){
	          	 var fields = fieldstr.split(",");
	          	 var fieldValues = [];
	          	 
	          	 for(var i = 0;i < fields.length;i++){
	          	 	params['bookMarkField' + i] = fields[i];
	          	 	params['bookMarkValue' + i] = WebOffice.getDocumentFieldValue(fields[i]);
	          	 }
	          	 params.bookMarkCounts = fields.length;
          	 }
          	 params.status = 1;
          	 return params;
          }
          
          function Load(){
          	var ifrmObj = document.getElementById("webOffice");
          	
          	var __src = "";
          	if("<%=officeType%>" == "iwebofficeChina"){
          		__src = "/odoc/odoc/iwebofficechina/OpenAndSave/OpenAndSave_Word3.jsp?FileType=<%=mFileType%>";
          	}else if("<%=officeType%>" == "webwps"){
          		__src = "/odoc/odoc/webwps/webwps_iframecontent.jsp";
          	}else if("<%=officeType%>" == "iweboffice2015"){
          		__src = "/odoc/odoc/weboffice2015/weboffice2015_iframecontent.jsp";
          	}else if("<%=officeType%>" == "yozoOffice"){
          		__src = "/odoc/odoc/yozoOffice/yozoOffice_iframecontent.jsp";
          	}
			ifrmObj.src = __src;
          }
          function UnLoad(){
          	if("<%=officeType%>" == "iwebofficeChina"){
	          	var WebOffice = document.getElementById("webOffice").contentWindow.document.getElementById('WebOffice');
	          	WebOffice.close();
          	}else if("<%=officeType%>" == "webwps" || "<%=officeType%>" == "yozoOffice"){
			  	var WebOffice = document.getElementById("webOffice").contentWindow.app;
	          	WebOffice.close();
			 }else if("<%=officeType%>" == "iweboffice2015"){
			 	try{
			 		var WebOfficeObj = document.getElementById("webOffice").contentWindow.WebOfficeObj
					if (!WebOfficeObj.WebClose()){
					  document.getElementById("webOffice").contentWindow.StatusMsg(WebOfficeObj.Status);
					}else{
					  document.getElementById("webOffice").contentWindow.StatusMsg("关闭文档...");
					}
				}catch(e){
					//alert(e.description);
			    }
			 }
          }
          function checkInDoc(){  //子层会调这个方法
          
          }
          
</script>
<script type="text/javascript" src="/odoc/odoc/docutils4Object.js"></script>
<%
if(officeType.equals("iweboffice2015")){	
%>
<script>
	function loadDoc(params)
	{	
		return document.getElementById("webOffice").contentWindow.initWebOffice(params);
	}
	function onloadWebOffice2015(){
  		onRequestDocLoad();
  	}
</script>
<%} %>