office_email.jsp 8.34 KB

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.systeminfo.SystemEnv,weaver.general.Util"%>
<%@ page import="weaver.hrm.*" %>
<%@ page import="com.engine.doc.util.IWebOfficeConf"%>
<%@ page import="com.engine.doc.util.DocPlugUtil" %>
<%@ page import="weaver.email.service.MailFilePreviewService" %>
<%@ page import="java.util.Map" %>
<jsp:useBean id="BaseBean" class="weaver.general.BaseBean" scope="page" />
<%

	User user = HrmUserVarify.getUser (request , response) ;
	if(user == null){
	    return;
	}
	String __agent = request.getHeader("user-agent");
	boolean iweb2015 = IWebOfficeConf.canIwebOffice();
	
	if(iweb2015){
		boolean __iweb2015 = "1".equals(Util.null2String(DocPlugUtil.getoffice215Set().get("isopen")));
		boolean isChinaSystem = IWebOfficeConf.isChinaSystem(__agent);
		if(!isChinaSystem && !__iweb2015){   //不是国产操作系统,并且不是2015,则走03,09
			iweb2015 = false;
		}
	}
	
    //如果非IE
    boolean isIE = true;
    if((__agent.contains("Firefox")||__agent.contains(" Chrome")||__agent.contains("Safari") )|| __agent.contains("Edge")){
    	isIE = false;
    }
    
    if(!isIE && !iweb2015){
    	response.sendRedirect("/wui/common/page/sysRemind.jsp?labelid=129755");
    	return;
    }
    
	int fileid =  Util.getIntValue(request.getParameter("fileid"));
	// 有权限阅读
	boolean canread = true;
	// 已被删除
	boolean isdelete = false;
	// 通过接口获取附件信息
	MailFilePreviewService mfps = new MailFilePreviewService();
	
	Map<String,String>	fileInfo = mfps.getFileInfoMap(user.getUID(),fileid + "");
	
	canread = fileInfo.get("canread").equals("true") ? true : false;
	isdelete = fileInfo.get("isdelete").equals("true") ? true : false;
	if(!canread){
		 response.sendRedirect("/notice/noright.jsp") ;
		 return;
	}
	if(isdelete){
		response.sendRedirect("/notice/Deleted.jsp?showtype=doc");
		return ;
	}
	
	String officeType = IWebOfficeConf.getType();
	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";
		}
	}
	
	String mClientName=BaseBean.getPropValue("weaver_obj","iWebOfficeClientName");
	if(mClientName==null||mClientName.trim().equals("")){
		mClientName="/docs/docs/iWebOffice2003.ocx#version=8.8.7.28";
	}
	if(!mClientName.startsWith("/docs/docs/")){
		mClientName = "/docs/docs/" + mClientName;
	}
	String mClassId=BaseBean.getPropValue("weaver_obj","iWebOfficeClassId");
	if(mClassId==null||mClassId.trim().equals("")){
		mClassId="clsid:23739A7E-5741-4D1C-88D5-D50B18F7C347";
	}
	
	String mServerUrl="/docs/office/OfficeServer.jsp";
	
	
	String filename = "";
	String extname = "";
	filename = Util.null2String(fileInfo.get("filename"));
	extname = filename.indexOf(".") >=0 ? filename.substring(filename.lastIndexOf(".")) : "";
	extname = extname.toLowerCase();
	
	
	if(!extname.equals(".doc") && 
			!extname.equals(".docx") && 
			!extname.equals(".xls") &&
			!extname.equals(".xlsx") && 
			!extname.equals(".ppt") &&
			!extname.equals(".pptx") &&
			!extname.equals(".wps")
		){
			response.sendRedirect("/wui/common/page/sysRemind.jsp?labelid=129755");
    		return;	
		}
	
%>
<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">html,body{margin: 0;padding: 0;width: 100%;height: 100%;overflow: hidden;}</style>
		<script type="text/javascript" src="/docs/e9/WebOffice.js?version=2019082901"></script>
			

		<SCRIPT language=javascript for=WebOffice event=OnToolsClick(vIndex,vCaption)>
			//响应工具栏事件 388405编号 24986 标题 500843请根据这些信息编写具体功能
			if(vIndex == 11) {
				alert('<%=SystemEnv.getHtmlLabelName(388405,user.getLanguage())%>'+':' + vIndex + '\n\r' +'<%=SystemEnv.getHtmlLabelName(24986,user.getLanguage())%>'+ ':' + vCaption + '\n\r' + '<%=SystemEnv.getHtmlLabelName(500843,user.getLanguage())%>' + '\n\r\n\r' + '<%=SystemEnv.getHtmlLabelName(500844,user.getLanguage())%>' + webform.WebOffice.WindowStatus);
			}
			if(vIndex == 12) {
				webform.WebOffice.Alert('<%=SystemEnv.getHtmlLabelName(500845,user.getLanguage())%>');//自定义工具栏测试
			}
			//if (vIndex==-1){webform.WebOffice.Alert(vCaption);}             //在完成相应操作后响应iWebOffice标准工具栏操作铵钮事件,如"手写批注",vCaption="手写批注"
		</SCRIPT>
		<script language=javascript>
			
			//作用:载入iWebOffice
			function Load(){
			     try{
			        document.getElementById("WebOffice").WebUrl="<%=mServerUrl%>";
			        document.getElementById("WebOffice").RecordID="<%=fileid%>_email";
			        document.getElementById("WebOffice").FileName="<%=filename%>";
			        document.getElementById("WebOffice").FileType="<%=extname%>";
			        document.getElementById("WebOffice").ShowToolBar="1"; //ShowToolBar:是否显示工具栏:1显示,0不显示  2 :隐藏OFFICE软件工具栏
			        document.getElementById("WebOffice").WebOpen();
			     }catch(e){
			        
			     }
			}
		</script>
		<style>
			.iwebDiv{
				padding-top:20px;
				margin-top:-20px;
				position:relative;
			}
			.iwebDiv #WebOffice{
				position:absolute;
				top:0;
			}
		</style>
	</head>
	
	<body onLoad="Load()" onUnload="UnLoad()">
	
		<%if(iweb2015){%>
			<iframe id="webOffice" width="100%" height="100%" frameborder="0" ></iframe>
			<script>
         	 function onRequestDocLoad(obj){
              	var params = new Object();	
				params.prop_showTitleBar="0";
				params.prop_showToolBar="1";
				params.prop_showMenu="1";
				params.prop_fileId="<%=fileid%>";
				params.prop_type = "Email";
				params.prop_fileName="test" + "<%=extname%>";
				
				params.prop_fileType=window.mouldType && "yozoOffice" == "<%=officeType%>" &&  "<%=extname%>" == ".doc" ? ".uot" : "<%=extname%>";   //永中office显示编辑模板保存为.uot
				params.prop_compatible="";
				params.prop_userName = "<%=user.getLastname()%>";
				try{
				   initWebOffice(params);
			        
				}catch(e){
					if(window.console){
						window.console.log(e);
					}
				}  
          }
          function Load(){
          	var ifrmObj = document.getElementById("webOffice");
          	
          	var __src = "";
          	if("<%=officeType%>" == "iwebofficeChina"){
          		__src = "/odoc/odoc/iwebofficechina/OpenAndSave/OpenAndSave_Word3.jsp?FileType=<%=extname%>";
          	}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);
			    }
			 }
          }
          <%if(officeType.equals("iweboffice2015")){%>
				function loadDoc(params)
				{	
					return document.getElementById("webOffice").contentWindow.initWebOffice(params);
				}
				function onloadWebOffice2015(){
			  		onRequestDocLoad();
			  	}
			<%} %>	
          </script>
          <script type="text/javascript" src="/odoc/odoc/docutils4Object.js"></script>

		<%}else{%>
			<div class="iwebDiv" style="width:100%;height:100%">
				<object name="WebOffice" id="WebOffice" width="100%" height="100%" classid="<%=mClassId%>" codeBase="<%=mClientName%>">
					<param name="wmode" value="Opaque"> 
				</object>
			</div>
		<%} %>
	</body>

</html>