介绍
在文档使用案例中有一部分是导出pdf的文档,但是目前不能直接导出pdf,只能是先预览在下载pdf,实现步骤与文档套件使用案例基本一致,需要修改的地方就是代码部分。
配置功能
文档数据,数据提取方式用资源表也可以
文档模板,其中文档类型的pdf 目前不用配,这个类型不用了
文档模板预览效果
在全局脚本库编写脚本
文档表单的下载与预览脚本库(doExecDoc)代码
/*
方法调用示例:JE.callCustomFn('编码',{ param1:1, param2:2 });
*/
/*
方法体编写示例:
*/
// 1. 方法参数解析
// const { param1, param2 } = EventOptions;
// 2. 方法体编写
// 3. 需要返回值,直接return;
// return result;
const {docCode,params,pd,returnType,$func} = EventOptions;
var pdf="0";
var returnTypeVal="exp";
if(JE.isNotEmpty(returnType)){
returnTypeVal=returnType;
}
var pdVal="";
if(JE.isNotEmpty(pd)){
pdVal=pd;
}else{
if($func && $func.getFuncData){
pdVal=$func.getFuncData().info.productCode;
}
}
JE.ajax({
url:"/je/office/jeOffice/doCacheParam",
params:params || {},
headers:{pd:pdVal}
}).then((resObj)=>{
if(resObj.success){
var paramKey=resObj.data;
if('exp'==returnType){
window.open("/je/office/jeOffice/doExecDoc?code="+docCode+"&pdf="+pdf+"&returnType="+returnTypeVal+"&type=cache&data="+paramKey+"&pd="+pdVal);
}else{
window.open("/je/office/jeOffice/doExecDoc?code="+docCode+"&pdf="+pdf+"&returnType="+returnTypeVal+"&type=cache&data="+paramKey+"&pd="+pdVal);
}
}else{
JE.alert(resObj.data, "error");
}
})
文档生成后保存到文档(doExecDataDoc)代码
/*
方法调用示例:JE.callCustomFn('编码',{ param1:1, param2:2 });
*/
/*
方法体编写示例:
*/
// 1. 方法参数解析
// const { param1, param2 } = EventOptions;
// 2. 方法体编写
// 3. 需要返回值,直接return;
// return result;
const {docCode,params,pd,returnType,$func,pdf} = EventOptions;
const {Upload} = JE.useUi();
var pdfVal="0";
var returnTypeVal="exp";
if(JE.isNotEmpty(returnType)){
returnTypeVal=returnType;
}
var pdVal="";
if(JE.isNotEmpty(pd)){
pdVal=pd;
}else{
if($func && $func.getFuncData){
pdVal=$func.getFuncData().info.productCode;
}
}
if(JE.isNotEmpty(pdf)){
pdfVal=pdf;
}
JE.ajax({
url:"/je/office/jeOffice/doCacheParam",
params:params || {},
headers:{pd:pdVal}
}).then((resObj)=>{
if(resObj.success){
var paramKey=resObj.data;
JE.ajax({
url:"/je/office/jeOffice/doExecDataDoc",
params:{
code:docCode,
pdf:pdf,
returnType:returnType,
type:'cache',
data:paramKey
}, headers:{pd:pdVal}
}).then((docObj)=>{
if(!docObj.success){
JE.alert(docObj.message,"error");
return;
}
if("exp"==returnTypeVal){
JE.useUtils().downloadFile(docObj.data.fileKey);
}else{
const fileItem = {fileKey: docObj.data.fileKey,relName:docObj.data.relName,size: docObj.data.size,suffix: "docx"};
Upload.previewFile(fileItem);
// JE.useUtils().previewFile(docObj.data.fileKey);
}
});
}else{
JE.alert(resObj.data, "error");
}
})
业务功能中使用
在功能中配置按钮,编写按钮事件,这里加了两个按钮,第一:下载原件,这是直接下载Word;预览文档,这是先将文档进行预览,预览之后下载pdf。
下载原件按钮事件
//获取ajax
//获得功能对象
const {$func} = EventOptions;
const funcForm=$func.getFuncForm();
const formValues=funcForm.getValues();
var pkCode=$func.getFuncData().info.pkCode;
if(!JE.isNotEmpty(formValues[pkCode])){
JE.alert("请先保存数据!", "error");
return;
}
var docCode="CRM002";
var params={
pkValue:formValues[pkCode]
}
var returnType="exp";
JE.callCustomFn('doExecDoc',{docCode:docCode,params:params,returnType:returnType,$func});
下载原文件效果(word)
预览文档按钮事件
const {
$func, // 功能对象
button, // 按钮对象
} = EventOptions;
// 异步事件,支持 await语法,实现同步处理。
const funcForm=$func.getFuncForm();
const formValues=funcForm.getValues();
var pkCode=$func.getFuncData().info.pkCode;
if(!JE.isNotEmpty(formValues[pkCode])){
JE.alert("请先保存数据!", "error");
return;
}
var docCode="CRM002";
var params={
pkValue:formValues[pkCode]
}
var returnType="preview";
JE.callCustomFn('doExecDataDoc',{docCode:docCode,params:params,returnType:returnType,$func});
预览文档效果:单击按钮之后弹框效果,先预览在手动点击下载
下载pdf效果
最后编辑: 呼丽华 文档更新时间: 2024-11-08 17:00 作者:呼丽华