var webUser = new WebUser(); $(function () { var items = $("[name=AthSingle]"); if (items.length == 0) return; //获取引入JS的路径 var ccPath = "../DataUser/"; var currentURL = GetHrefUrl(); if (currentURL.indexOf("FoolFormDesigner/Designer") != -1) ccPath = "../../../DataUser/"; if (currentURL.indexOf("CCForm") != -1) ccPath = "../../DataUser/"; //引入wps的js //Skip.addJs(ccPath + "JSLibData/GovFile110/wps1/wps_js/wps_sdk.js"); //Skip.addJs(ccPath + "JSLibData/GovFile110/wps1/wps_js/wps.js"); Skip.addJs(ccPath + "JSLibData/GovFile110/wps/oaassist/server/wwwroot/resource/js/wps_sdk.js"); Skip.addJs(ccPath + "JSLibData/GovFile110/wps/oaassist/server/wwwroot/resource/js/wps.js"); //点击事件 $("[name=AthSingle]").bind('click', function () { var myPK = this.id; var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm"); handler.AddUrlData(); handler.AddPara("AthMyPK", myPK); handler.AddPara("PKVal", pageData.WorkID); var data = handler.DoMethodReturnString("AthSingle_Init"); if (data.indexOf("err@") != -1) { alert(data.replace("err@", "")); return; } var ath = JSON.parse(data); var isHaveFile = true; if (ath.AtPara.indexOf("IsHaveFile=0") != -1) isHaveFile = false; //文档打开方式 var openType = {}; //只读 if (isReadonly == true || ath.AthEditModel == 0) { if (isHaveFile == false) { alert("文件不存在,不能打开"); return; } // 文档保护类型,-1:不启用保护模式,0:只允许对现有内容进行修订, // 1:只允许添加批注,2:只允许修改窗体域(禁止拷贝功能),3:只读 openType.protectType =3; } //可编辑全部区域 else if (ath.AthEditModel == 1) openType.protectType = -1 //可编辑非数据标签区域 else if (ath.AthEditModel == 2) openType.protectType = 0 openAthSingleDoc(myPK, myPK, ccPath, ath, openType, isHaveFile); }); }); function GetTempPath(fk_mapData,mypk,fileType) { var url = document.location.host; if (fileType==0) return document.location.protocol + "//" + url + "/DataUser/Temp/" + mypk + ".docx"; return document.location.protocol + "//" + url + "/DataUser/UploadFile/" + fk_mapData + "/" + pageData.WorkID + "/" + mypk + ".docx"; } /** * 打开、编辑文档 * @param {any} docID * @param {any} mypk * @param {any} ccPath */ function openAthSingleDoc(docID, mypk, ccPath, ath, openType, isHaveFile) { //文件路径 var filePath = ""; if (pageData.WorkID == 0) filePath = GetTempPath(ath.FK_MapData, mypk, 0); else filePath = GetTempPath(ath.FK_MapData, mypk, 1); if (openType.protectType == 3) { _WpsInvoke([{ "OpenDoc": { "docId": docID, // 文档ID "fileName": filePath, "userName": webUser.Name, "openType": openType } }]) return; } //保存文档上传路径 var uploadPath = basePath + '/WF/CCForm/Handler.ashx?AthMyPK=' + mypk + '&DoType=AthSingle_Upload&FK_Flow=' + pageData.FK_Flow + '&PKVal=' + pageData.WorkID; //需要填充的数据 var tempDataPath = ""; //使用模板规则 switch (ath.AthSingleRole) { case 0: //不使用模板 if (isHaveFile == false) { _WpsInvoke([{ "NewDoc": { "docId": docID, // 文档ID //"fileName": filePath, "uploadPath": uploadPath, // 保存文档上传路径 "userName": webUser.Name, "openType": openType } }]) break; } case 1://使用上传模板 _WpsInvoke([{ "OpenDoc": { "docId": docID, // 文档ID "uploadPath": uploadPath, // 保存文档上传路径 "fileName": filePath, "userName": webUser.Name, "openType": openType } }]) break; case 2: //使用上传模板自动加载数据标签 // debugger var templatePath = basePath + '/WF/CCForm/Handler.ashx?AthMyPK=' + mypk + '&DoType=AthSingle_TemplateData&FK_Flow=' + pageData.FK_Flow + '&FK_Node='+pageData.FK_Node+'&PKVal=' + pageData.WorkID; _WpsInvoke([{ "OpenDoc": { "docId": docID, // 文档ID "fileName": filePath, "uploadPath": uploadPath, // 保存文档上传路径 "templateDataUrl": templatePath, "userName": webUser.Name, "openType": openType } }]) break; } } /** * 通用的打开wps客户端插件 * @param {any} funcs 配置的参数 */ function _WpsInvoke(funcs) { var info = {}; info.funcs = funcs; var func = bUseHttps ? WpsInvoke.InvokeAsHttps : WpsInvoke.InvokeAsHttp func(WpsInvoke.ClientType.wps, // 组件类型 "WpsOAAssist", // 插件名,与wps客户端加载的加载的插件名对应 "dispatcher", // 插件方法入口,与wps客户端加载的加载的插件代码对应,详细见插件代码 info, // 传递给插件的数据 function (result) { // 调用回调,status为0为成功,其他是错误 if (result.status) { if (bUseHttps && result.status == 100) { WpsInvoke.AuthHttpesCert('请在稍后打开的网页中,点击"高级" => "继续前往",完成授权。') return; } alert(result.message) } else { console.log(result.response) showresult(result.response) } }) }