You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2149 lines
81 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/***toolbar的图标颜色81C4FF大小20 */
var wf_node = null;
var webUser = new WebUser();
var toolbarPos = getConfigByKey("ToolbarPos", '0'); //签名图片的默认后缀
var btnMenu = null;
$(function () {
var barHtml = "";
var data;
//广西计算中心特意加的一个url参数用来控制toolbar隐藏
if (GetQueryString("hideAllBtn") === "1") return;
var handler = "";
//MyCC
if ($("#JS_CC").length == 1) {
handler = "BP.WF.HttpHandler.WF_MyCC";
} else if ($("#JS_MyView").length == 1 || $("#JS_MyFrm").length == 1) {
handler = "BP.WF.HttpHandler.WF_MyView";
} else {
handler = "BP.WF.HttpHandler.WF_MyFlow";
}
var handler = new HttpHandler(handler);
handler.AddUrlData();
if ($("#JS_MyFrm").length == 1)
data = handler.DoMethodReturnString("MyFrm_InitToolBar");
else
data = handler.DoMethodReturnString("InitToolBar");
if (data.indexOf("err@") != -1) {
alert(data);
console.log(data);
return;
}
data = JSON.parse(data);
//当前节点的信息
if (data.WF_Node != undefined)
wf_node = data.WF_Node[0];
else
wf_node = new Entity("BP.WF.Node", paramData.FK_Node);
var toolBars = data.ToolBar;
if (toolBars == undefined) {
toolBars = data;
}
var _html = "";
var sendBtnOper = "";
$.each(toolBars, function (i, toolBar) {
var Oper = "";
if (toolBar.Oper != "") {
if (toolBar.No == "Send" || toolBar.No == "SendBtn" || toolBar.No == "Save")
Oper = "onclick=\"" + toolBar.Oper + "\"";
else
Oper = "data-info=\"" + toolBar.Oper + "\"";
//Oper = "onclick=\"" + toolBar.Oper + "\"";
if (toolBar.No == "Send")
sendBtnOper = Oper;
}
if (toolBar.No == "Save") {
//_html += "<button class='layui-btn layui-btn-sm layui-btn-primary' lay-submit lay-filter='Save' name='" + toolBar.No + "Btn' enable=true " + Oper + "><img src='" + basePath + "/WF/Img/Btn/" + toolBar.No + ".png' width='20px' height='20px'>&nbsp;" + toolBar.Name + "</button>";
_html += "<button type='button' class='layui-btn layui-btn-sm layui-btn-primary' lay-submit lay-filter='Save' name='" + toolBar.No + "Btn' enable=true " + Oper + "><img src='" + basePath + "/WF/Img/Btn/" + toolBar.No + ".png' width='20px' height='20px'>&nbsp;" + toolBar.Name + "</button>";
return true;
}
if (toolBar.No == "NodeToolBar") { //自定义工具栏按钮
var Icon = toolBar.Icon;
//自定义的默认按钮
var img = "<img src='" + basePath + "/WF/Img/Btn/CH.png' width='20px' height='20px'>&nbsp;"
//有上传的icon,否则用默认的
if (Icon != "" && Icon != undefined) {
var index = Icon.indexOf("\DataUser");
if (index != -1)
Icon = Icon.replace(Icon.substr(0, index), "../");
img = "<img src='" + Icon + "' width='20px' height='20px'>&nbsp;";
}
_html += "<button type='button' class='layui-bar layui-btn layui-btn-sm layui-btn-primary' name='" + toolBar.No + "' enable=true " + Oper + ">" + img + toolBar.Name + "</button>";
}
else {
if (toolBar.No == "Send")
//_html += "<button class='layui-btn layui-btn-sm layui-btn-primary' name='" + toolBar.No + "Btn' enable=true " + Oper + " lay-submit lay-filter='Send'><img src='" + basePath + "/WF/Img/Btn/" + toolBar.No + ".png' width='20px' height='20px'>&nbsp;" + toolBar.Name + "</button>";
_html += "<button type='button' class='layui-btn layui-btn-sm layui-btn-primary' name='" + toolBar.No + "Btn' enable=true " + Oper + " lay-submit lay-filter='Send'><img src='" + basePath + "/WF/Img/Btn/" + toolBar.No + ".png' width='20px' height='20px'>&nbsp;" + toolBar.Name + "</button>";
else {
//_html += "<button class='layui-bar layui-btn-sm layui-btn layui-btn-primary' name='" + toolBar.No + "' enable=true " + Oper + " ><img src='" + basePath + "/WF/Img/Btn/" + toolBar.No + ".png' width='20px' height='20px'>&nbsp;" + toolBar.Name + "</button>";
_html += "<button type='button' class='layui-bar layui-btn-sm layui-btn layui-btn-primary' name='" + toolBar.No + "' enable=true " + Oper + " ><img src='" + basePath + "/WF/Img/Btn/" + toolBar.No + ".png' width='20px' height='20px'>&nbsp;" + toolBar.Name + "</button>";
}
}
});
if (toolbarPos == "0") {
$('#ToolBar').html(_html);
$('#Toolbar').html(_html);
$(".layui-header").show();
if (toolBars.length == 0)
$(".layui-header").hide();
}
if (toolbarPos == "1") {
$('#bottomToolBar').html(_html);
$('#bottomToolBar').html(_html);
$(".layui-footer").show();
$(".layui-header").hide();
$(".layui-fluid").css("padding-top", "0px");
$(".layui-fluid").css("top", "0px");
}
//引入数据批阅的js
if ($('[name=FrmDBRemark]').length > 0) {
loadScript(basePath + "/WF/CCForm/JS/FrmDBRemark.js?t=" + Math.random());
}
if ($('[name=FrmDBVer]').length > 0) {
loadScript(basePath + "/WF/CCForm/JS/FrmDBVer.js?t=" + Math.random());
}
//按钮旁的下来框
if (wf_node != null && wf_node.IsBackTrack == 0)
InitToNodeDDL(data, wf_node);
//如果启用的按钮操作太多时,自适应高度
if (toolbarPos == "0") {
var btnH = $("#ToolBar").height();
if (btnH > 50) {
$("#ToolBar").parent().height(btnH);
$("#ContentDiv").parent().css("padding-top", btnH + "px");
}
}
if (toolbarPos == "1") {
var btnH = $('#bottomToolBar').height();
if (btnH > 50) {
$("#bottomToolBar").parent().height(btnH);
$("#ContentDiv").parent().css("padding-bottom", btnH + "px");
}
}
$('[name=SaveBtn]').attr("saveType", 0);
$('.layui-bar').on('click', function () {
var oper = $(this).data("info");
if (oper != null && oper != undefined && oper != "") {
oper = oper.toString().replace(/~/g, "'");
oper = DealExp(oper, webUser, false);
cceval(oper);
}
});
if ($('[name=Return]').length > 0) {
$('[name=Return]').bind('click', function () {
//增加退回前的事件
if (typeof beforeReturn != 'undefined' && beforeReturn instanceof Function)
if (beforeReturn() == false)
return false;
if (typeof Save != 'undefined' && Save instanceof Function)
Save(1);
initModal("returnBack");
});
}
//流转自定义
if ($('[name=TransferCustom]').length > 0) {
$('[name=TransferCustom]').bind('click', function () {
initModal("TransferCustom");
});
}
//挂起
if ($('[name=Hungup]').length > 0) {
$('[name=Hungup]').bind('click', function () {
initModal("Hungup");
});
}
if ($('[name=Thread]').length > 0) {
$('[name=Thread]').bind('click', function () {
initModal("Thread");
});
}
if ($('[name=Shift]').length > 0) {
$('[name=Shift]').bind('click', function () { initModal("shift"); });
}
if ($('[name=Btn_WorkCheck]').length > 0) {
$('[name=Btn_WorkCheck]').bind('click', function () { initModal("shift"); });
}
if ($('[name=Askfor]').length > 0) {
$('[name=Askfor]').bind('click', function () { initModal("askfor"); });
}
if ($('[name=Track]').length > 0) {
$('[name=Track]').bind('click', function () { initModal("Track"); });
}
if ($('[name=HuiQian]').length > 0) {
$('[name=HuiQian]').bind('click', function () { initModal("HuiQian"); });
}
if ($('[name=AddLeader]').length > 0) {
$('[name=AddLeader]').bind('click', function () { initModal("AddLeader"); });
}
if ($('[name=CC]').length > 0) {
$('[name=CC]').bind('click', function () { initModal("CC"); });
}
if ($('[name=PackUp_zip]').length > 0) {
$('[name=PackUp_zip]').bind('click', function () { initModal("PackUp_zip"); });
}
if ($('[name=PackUp_html]').length > 0) {
$('[name=PackUp_html]').bind('click', function () {
printHtml();
});
}
if ($('[name=PackUp_pdf]').length > 0) {
$('[name=PackUp_pdf]').bind('click', function () { initModal("PackUp_pdf"); });
}
if ($('[name=PrintDoc]').length > 0) {
$('[name=PrintDoc]').bind('click', function () { initModal("PrintDoc"); });
}
if ($('[name=PR]').length > 0) {
$('[name=PR]').bind('click', function () { initModal("PR"); });
}
if ($('[name=SelectAccepter]').length > 0) {
$('[name=SelectAccepter]').bind('click', function () {
initModal("accepter");
});
}
if ($('[name=DBTemplate]').length > 0) {
$('[name=DBTemplate]').bind('click', function () {
initModal("DBTemplate");
});
}
if ($('[name=Delete]').length > 0) {
$('[name=Delete]').bind('click', function () {
//增加删除前事件
if (typeof beforeDelete != 'undefined' && beforeDelete instanceof Function)
if (beforeDelete() == false)
return false;
DeleteFlow();
});
}
if ($('[name=ParentForm]').length > 0) {
$('[name=ParentForm]').bind('click', function () {
var myPWorkID = GetQueryString("PWorkID");
var myPFlow = GetQueryString("PFlowNo");
if (myPFlow == null) {
//取得父流程FK_Flow
var gwf = new Entity("BP.WF.GenerWorkFlow", GetQueryString("WorkID"));
myPFlow = gwf.PFlowNo;
}
var url = "MyView.htm?WorkID=" + myPWorkID + "&FK_Flow=" + myPFlow+"&IsReadonly=1";
window.open(url);
});
}
if ($('[name=CH]').length > 0) {
$('[name=CH]').bind('click', function () { initModal("CH"); });
}
if ($('[name=Note]').length > 0) {
$('[name=Note').bind('click', function () { initModal("Note"); });
}
//公文正文组件
if ($('[name=GovDocFile]').length > 0) {
$('[name=GovDocFile').bind('click', function () { initModal("GovDocFile"); });
}
//公文
if ($('[name=DocWord]').length > 0) {
$('[name=DocWord').bind('click', function () { initModal("DocWord"); });
}
//回滚 Rollback
if ($('[name=Rollback]').length > 0) {
$('[name=Rollback]').bind('click', function () { initModal("Rollback"); });
}
//跳转 JumpWay
if ($('[name=JumpWay]').length > 0) {
$('[name=JumpWay]').bind('click', function () { initModal("JumpWay"); });
}
//生成二维码
if ($('[name=QRCode]').length > 0) {
$('[name=QRCode]').bind('click', function () { initModal("QRCode"); });
}
//数据库版本
// if ($('[name=FrmDBVer]').length > 0) {
// $('[name=FrmDBVer]').bind('click', function () { initModal("FrmDBVer"); });
//}
//小纸条
if ($('[name=Scrip]').length > 0) {
$('[name=Scrip]').bind('click', function () { initModal("Scrip"); });
}
//评论
if ($('[name=FlowBBS]').length > 0) {
$('[name=FlowBBS]').bind('click', function () { initModal("FlowBBS"); });
}
//IM
if ($('[name=IM]').length > 0) {
$('[name=IM]').bind('click', function () { initModal("IM"); });
}
//分流节点,查看表单
if ($('[name=OpenFrm]').length > 0) {
$('[name=OpenFrm]').bind('click', function () { initModal("OpenFrm"); });
}
//切换组织
if ($('[name=ChangeOrg]').length > 0) {
$('[name=ChangeOrg]').bind('click', function () {
//获取所有的部门
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Setting");
var depts = handler.DoMethodReturnString("ChangeDept_Init");
if (depts.indexOf('err@') == 0) {
layer.alert(depts);
return;
}
depts = JSON.parse(depts);
if (depts.length == 1) {
layer.alert("您只有一个部门[" + depts[0].Name + "],不需要切换部门");
return;
}
var _html = "";
depts.forEach(function (dept) {
if(webUser.FK_Dept === dept.No)
_html += '<a href="javascript:void(0)" onclick="ChangeDept(\'' + dept.No + '\')"><span style="color:green">' + dept.Name + '(当前部门)</span></a></br>';
else
_html += '<a href="javascript:void(0)" onclick="ChangeDept(\'' + dept.No + '\')">' + dept.Name + '</a></br>';
})
layer.open({
title: '切换部门'
, content: _html
});
});
}
//延期发送
if ($('[name=DelayedSend]').length > 0) {
$('[name=DelayedSend]').bind('click', function () {
DelayedSend();
});
}
HelpAlter();
if (typeof AfterToolbarLoad == "function")
AfterToolbarLoad();
});
function DelayedSend(formType) {
//设置延期发送,需要验证表单填写内容是否全面
if (beforeSendCheck(formType) == false)
return false;
//需要先保存,当前表单的数据
isSaveOnly = true;
$('[name=SaveBtn]').attr("saveType", 1);
$('[name=SaveBtn]').trigger("click");
$('[name=SaveBtn]').attr("saveType", 0);
if (isSaveOnly == false)
return;
var toNodeID = 0;
var selectToNode;
var isSelectEmps = false;
if ($('#DDL_ToNode').length > 0) {
selectToNode = $('#TB_ToNode').data();
toNodeID = selectToNode.id;
if (["1", "2", "3", "4", "5"].includes(selectToNode.IsSelectEmps))
isSelectEmps = true;
}
if (isSelectEmps == true) {
debugger;
Send(false, formType,1);
return;
}
var _html = `<form class="layui-form" action="">
<div class="layui-form-item">
<div class="layui-input-inline">
<input type="text" name="TB_Day" id="TB_Day" class="layui-input" value="0">
</div>
<label class="layui-form-label">天</label>
<div class="layui-input-inline">
<input type="text" name="TB_Hour" id="TB_Hour" class="layui-input"value="0">
</div>
<label class="layui-form-label">小时</label>
<div class="layui-input-inline">
<select name="DDL_Minute" id="DDL_Minute">
<option value="0">0</option>
<option value="15">15</option>
<option value="30">30</option>
<option value="45">45</option>
</select>
</div>
<label class="layui-form-label">分</label>
</div>
</form>
`;
layui.use(['form', 'layer'], function () {
var form = layui.form;
var layer = layui.layer;
layer.open({
title: '设置延期发送'
, content: _html,
area: ['auto', '350px'],
yes: function (index, layero) {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddUrlData();
var day = $("#TB_Day").val() || 0;
var hour = $("#TB_Hour").val() || 0;
var minute = $("#DDL_Minute").val() || 0;
if (day == 0 && hour == 0 && minute == 0) {
layer.alert("请设置延期发送的时间");
return;
}
handler.AddPara("TB_Day", day);
handler.AddPara("TB_Hour", hour);
handler.AddPara("DDL_Minute", minute);
handler.AddPara("ToNodeID", toNodeID);
var data = handler.DoMethodReturnString("DelayedSend");
if (data.indexOf("err@") != -1) {
layer.alert(data);
return;
}
layer.alert("延期发送设置成功");
layer.close(index); //如果设定了yes回调需进行手工关闭
closeWindow();
}
});
form.render();
});
}
function SelectEmps(selectEmpType,toNodeID) {
if (selectEmpType == "1")
initModal("sendAccepter", toNodeID, 0);
}
function ChangeDept(deptNo) {
if (deptNo == WebUser.FK_Dept)
return;
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Setting");
handler.AddPara("DeptNo", deptNo);
var data = handler.DoMethodReturnString("ChangeDept_Submit");
if (data.indexOf('err@') == 0) {
layer.alert(data);
return;
}
SetHref(GetHrefUrl());
}
//添加保存动态
function SaveOnly() {
$("button[name=Save]").html("<img src='./Img/Btn/Save.png' width='22px' height='22px'>&nbsp;正在保存...");
try {
Save($('[name=SaveBtn]').attr("saveType"));
} catch (e) {
alert(e);
return;
}
$("button[name=Save]").html("<img src='./Img/Btn/Save.png' width='22px' height='22px'>&nbsp;....");
setTimeout(function () { $("button[name=Save]").html("<img src='./Img/Btn/Save.png' width='22px' height='22px'>&nbsp;保存"); }, 300);
}
function setModalMax() {
//设置bootstrap最大化窗口
var w = ddocument.body.clientWidth - 40;
$("#returnWorkModal .modal-dialog").css("width", w + "px");
}
//初始化退回、移交、加签窗口
function initModal(modalType, toNode, url, isDelayedSend) {
$("#returnWorkModal").on('hide.bs.modal', function () {
setToobarEnable();
});
var isFrameCross = GetHrefUrl().indexOf(basePath) == -1 ? 1 : 0;
var modalIframeSrc = '';
var width = window.innerWidth / 2;
var height = 50;
var title = "";
if (modalType != undefined) {
var isShowColseBtn = 1;
switch (modalType) {
case "returnBack":
title = "退回";
width = window.innerWidth / 2;
var node = new Entity("BP.WF.Template.NodeExt", paramData.FK_Node);
var info = "";
if (info == "" && node.ReturnField != "") {
if ($("#" + node.ReturnField).length == 1)
info = $("#" + node.ReturnField).val();
if (info == undefined && $("#TB_" + node.ReturnField).length == 1)
info = $("#TB_" + node.ReturnField).val();
if (info == undefined)
info = "";
}
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/ReturnWork.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=" + info + "&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "Send":
SetChildPageSize(80, 80);
break;
case "TransferCustom":
title = "流转自定义";
width = window.innerWidth * 3 / 5;
height = 60;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/TransferCustom.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "accpter":
title = "工作移交";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Accepter.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
isShowColseBtn = 0;
break;
case "Thread":
case "thread":
title = "子线程";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/ThreadDtl.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "shift":
title = "工作移交";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Shift.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
isShowColseBtn = 0;
break;
case "GovDocFile":
title = "公文正文";
width = window.innerWidth * 2 / 5;
height = 40;
modalIframeSrc = ccbpmPath + "/WF/CCForm/GovDocFile.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "DocWord":
title = "公文";
width = window.innerWidth * 2 / 5;
height = 40;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/DocWord.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "askfor":
title = "加签";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Askfor.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "Btn_WorkCheck":
title = "审核";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/WorkCheck.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "Track": //轨迹.
title = "处理记录、轨迹";
width = window.innerWidth * 4 / 5;
height = 80;
var workID = paramData.WorkID;
if (paramData.WorkID == 0 && paramData.FID != 0)
workID = paramData.FID;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/OneWork/OneWork.htm?CurrTab=Truck&FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + workID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "HuiQian":
width = window.innerWidth * 4 / 5;
height = 80;
if (toNode != null)
title = "先会签,后发送。";
else
title = "会签";
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/HuiQian.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&ToNode=" + toNode + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
isShowColseBtn = 0;
break;
case "AddLeader":
title = "加主持人";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/HuiQian.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&ToNode=" + toNode + "&HuiQianType=AddLeader&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "Hungup":
var gwf = new Entity("BP.WF.GenerWorkFlow", paramData.WorkID);
if (gwf.WFState == 4) {
alert("业务已经被挂起,不可以重复操作.");
return;
}
title = "挂起/延期";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Hungup.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&ToNode=" + toNode + "&HuiQianType=AddLeader&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "CC":
title = "抄送";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/CC.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&ToNode=" + toNode + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "PackUp_zip":
case "PackUp_html":
case "PackUp_pdf":
title = "打包下载/打印";
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Packup.htm?FileType=" + modalType.replace('PackUp_', '') + "&FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "PrintDoc":
title = "打印单据";
if (wf_node.FormType == 5) {
//绑定表单的时候增加一个tab页到页面
var formData = { No: "PrintDoc", "Name": "打印单据" };
vm.openPage(formData);
return;
}
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/PrintDoc.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&s=" + Math.random();
break;
case "Press":
//$('#modalHeader').text("催办");
//modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Press.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "Accepter":
case "accepter":
title = "选择下一个节点及下一个节点接受人";
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Accepter.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&s=" + Math.random() + "&isFrameCross=" + isFrameCross + "&IsDelayedSend=" + isDelayedSend;
isShowColseBtn = 0;
break;
//发送选择接收节点和接收人
case "sendAccepter":
//获取到达节点
var nodeOne = new Entity("BP.WF.Template.NodeSimple", toNode);
title = "选择接受人(到达节点:" + nodeOne.Name + ")";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Accepter.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&PWorkID=" + GetQueryString("PWorkID") + "&ToNode=" + toNode + "&s=" + Math.random() + "&isFrameCross=" + isFrameCross + "&IsDelayedSend=" + isDelayedSend;
isShowColseBtn = 0;
break;
case "SelectNodeUrl":
title = "请选择到达的节点";
// width = 700;// window.innerWidth * 1 / 2;
width = window.innerWidth * 0.8; // / 2;
height = 100;
modalIframeSrc = url;
break;
case "BySelfUrl"://接收人规则自定义URL
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = url;
if ($("#returnWorkModal .modal-footer").length == 0) {
var footBtn = $('<div class="modal-footer"><div>');
$("#returnWorkModal .modal-body").after(footBtn);
var footerOK = $('<button type="button" class="Btn" data-dismiss="modal"> 发送</button >');
footerOK.click(function () {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddUrlData();
var data = handler.DoMethodReturnString("Send");
if (data.indexOf("err@") != -1) {
var reg = new RegExp('err@', "g")
var data = data.replace(reg, '');
$(".modal-body").html(data);
$('#MessageDiv').modal().show();
setToobarEnable();
return;
}
OptSuc(data);
});
var footerClose = $('<button type="button" class="Btn" data - dismiss="modal" > 取消</button >');
footerClose.click(function () {
var sels = new Entities("BP.WF.Template.SelectAccpers");
sels.Delete("WorkID", GetQueryString("WorkID"), "FK_Node", getQueryStringByNameFromUrl(url, "ToNode"));
$("#returnWorkModal").modal('hide');
});
footBtn.append(footerOK).append(footerClose);
}
$(".modal-content").css("height", "auto");
break;
case "sendAccepterOfOrg":
title = "选择接受人";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/AccepterOfOrg.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&PWorkID=" + GetQueryString("PWorkID") + "&ToNode=" + toNode + "&s=" + Math.random() + "&isFrameCross=" + isFrameCross + "&IsDelayedSend=" + isDelayedSend;
break;
case "AccepterOfDept":
title = "选择接受人";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/AccepterOfDept.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&PWorkID=" + GetQueryString("PWorkID") + "&ToNode=" + toNode + "&s=" + Math.random() + "&isFrameCross=" + isFrameCross + "&IsDelayedSend=" + isDelayedSend;
break;
case "AccepterOfOfficer":
title = "选择联络员";
width = window.innerWidth * 3 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/AccepterOfOfficer.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&PWorkID=" + GetQueryString("PWorkID") + "&ToNode=" + toNode + "&s=" + Math.random() + "&isFrameCross=" + isFrameCross + "&IsDelayedSend=" + isDelayedSend;
break;
case "DBTemplate":
title = "历史发起记录&模版";
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/DBTemplate.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "CH":
title = "节点时限";
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/CH.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "Note":
title = "备注";
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Note.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
case "PR":
title = "重要性设置";
width = window.innerWidth * 1 / 2;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/PRI.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&PRIEnable=" + paramData.PRIEnable + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "Rollback":
title = "回滚";
width = window.innerWidth / 2;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/Rollback.htm?WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random();
break;
case "JumpWay":
title = "流程节点跳转";
width = window.innerWidth / 2;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/JumpWay.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&Info=&s=" + Math.random() + "&isFrameCross=" + isFrameCross;
break;
case "QRCode":
title = "二维码扫描";
width = window.innerWidth / 2;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/QRCode/GenerCode.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&FID=" + paramData.FID + "&PWorkID=" + paramData.PWorkID + "&Info=&s=" + Math.random();
break;
//case "FrmDBVer":
// title = "数据版本";
// width = window.innerWidth * 4 / 5;
// modalIframeSrc = ccbpmPath + "/WF/CCForm/FrmDBVer.htm?FK_Node=" + paramData.FK_Node + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&s=" + Math.random();
// window.open(modalIframeSrc);
// return;
case "Scrip":
OpenScrip();
return;
case "FlowBBS":
var type = $("input[name=FlowBBS]").attr("data-info");
title = "评论";
width = window.innerWidth * 4 / 5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/CCBill/OptComponents/FrmBBS.htm?FrmID=ND" + parseInt(paramData.FK_Flow) + "Rpt" + "&WorkID=" + paramData.WorkID + "&s=" + Math.random();
if (type == 2)
modalIframeSrc += "&IsReadonly=1";
break;
case "IM":
title = "即时通讯";
width = window.innerWidth / 3;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/WorkOpt/IM.htm?NodeID=" + paramData.FK_Node + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&s=" + Math.random();
OpenLayuiDialog(modalIframeSrc, title, width, height, "rb", false, false, false, null, null, null, 0);
break;
case "OpenFrm":
title = "查看表单";
var workID = paramData.WorkID;
if (paramData.WorkID == 0 && paramData.FID != 0)
workID = paramData.FID;
width = window.innerWidth * 4/5;
height = 80;
modalIframeSrc = ccbpmPath + "/WF/MyFrm.htm?NodeID=" + paramData.FK_Node + "&FK_Node=" + paramData.FK_Node + "&WorkID=" + workID + "&FK_Flow=" + paramData.FK_Flow + "&s=" + Math.random();
OpenLayuiDialog(modalIframeSrc, title, width, height, "auto");
default:
break;
}
}
height = 100;
if (isShowColseBtn == 0)
OpenLayuiDialog(modalIframeSrc, title, width, height, "r", false, false, false, null, null, null, 0);
else
OpenLayuiDialog(modalIframeSrc, title, width, height, "r");
return false;
}
function OpenScrip() {
var en = new Entity("BP.WF.GenerWorkFlow", GetQueryString("WorkID"));
var ScripNodeID = en.GetPara("ScripNodeID");
var msg = en.GetPara("ScripMsg");
if (ScripNodeID != GetQueryString("FK_Node"))
msg = "";
if (msg == null || msg == undefined)
msg = "";
layer.open({
type: 1
, title: "小纸条"
, closeBtn: false
, area: ['40%', '40%']
, shade: 0
, id: 'Layui_Scrip' //设定一个id防止重复弹出
, btn: ['保存', '取消']
, btnAlign: 'c'
, moveType: 1 //拖拽模式0或者1
, content: '<textarea style="margin:10px;width:95%" placeholder="请输入内容" class="layui-textarea">' + msg + '</textarea>'
, yes: function (index, layero) {
layer.close(index);
en.SetPara("ScripNodeID", GetQueryString("FK_Node"));
en.SetPara("ScripMsg", layero.find("textarea").val());
en.Update();
}
});
}
//禁用按钮功能
function setToobarDisiable() {
$('#ToolBar input').css('background', 'gray');
$('#ToolBar input').attr('disabled', 'disabled');
}
//启用按钮功能
function setToobarEnable() {
$('#ToolBar input').css('background', '');
$('#ToolBar input').removeAttr('disabled');
}
//初始化发送节点下拉框
function InitToNodeDDL(JSonData, wf_node) {
if (JSonData.ToNodes == undefined)
return;
if (JSonData.ToNodes.length == 0)
return;
//如果没有发送按钮,就让其刷新,说明加载不同步.
var btn = $('[name=SendBtn]');
if (btn == null || btn == undefined) {
Reload();
return;
}
//如果是会签且不是主持人时,则发送给主持人,不需要选择下一个节点和接收人
if (btn.length != 0) {
var dataType = $(btn[0]).attr("data-type");
if (dataType != null && dataType != undefined && dataType == "isAskFor")
return;
}
var _html = '<button type="button" class="layui-bar layui-btn layui-btn-sm layui-btn-primary " id="Btn_ToNode">';
_html += '<span id="DDL_ToNode"></span>';
_html += '<input type="hidden" id="TB_ToNode"/>';
_html += '<i class="layui-icon layui-icon-down layui-font-12"></i>';
_html += '</button>';
$('[name=SendBtn]').after(_html);
var data = [];
var isSelected = false;
$.each(JSonData.ToNodes, function (i, toNode) {
var item = {
id: toNode.No,
title: toNode.Name,
DeliveryParas: toNode.DeliveryParas,
IsSelectEmps: toNode.IsSelectEmps,
IsSelected: toNode.IsSelected
}
data.push(item)
if (item.IsSelected == "1") {
isSelected = true;
$("#DDL_ToNode").html(item.title);
$("#TB_ToNode").data(item);
}
})
if (isSelected == false) {
$("#DDL_ToNode").html(data[0].title);
$("#TB_ToNode").data(data[0]);
}
btnMenu = layui.dropdown.render({
elem: '#Btn_ToNode',
data: data,
click: function (obj) {
$("#DDL_ToNode").html(obj.title);
$("#TB_ToNode").data(obj);
}
});
if (wf_node.CondModel == 3) {
var _html = "";
$.each(JSonData.ToNodes, function (i, toNode) {
var obj = $("<Button type='button' class='layui-btn layui-btn-sm layui-btn-primary' id='" + toNode.No + "' name='ToNodeBtn' enable=true ><img src='" + basePath + "/WF/Img/Btn/Send.png' width='22px' height='22px'>&nbsp;" + toNode.Name + "</button>");
$('[name=SendBtn]').before(obj);
obj.data(toNode);
});
$("#Btn_ToNode").hide();
$('[name=SendBtn]').hide();
$('[name=ToNodeBtn]').on('click', function () {
var toNode = this.id;
$("#TB_ToNode").data($("#" + toNode).data());
$('[name=SendBtn]').trigger("click");
});
}
}
function beforeSendCheck(formType) {
if (wf_node != null && wf_node.ScripRole == 2) {
var gwf = new Entity("BP.WF.GenerWorkFlow", GetQueryString("WorkID"));
var ScripNodeID = gwf.GetPara("ScripNodeID");
var msg = gwf.GetPara("ScripMsg");
if (ScripNodeID != GetQueryString("FK_Node"))
msg = "";
if (msg == null || msg == undefined)
msg = "";
var val = promptGener("请输入要传达的信息,可以为空.", msg);
if (val != null && val != '') {
gwf.SetPara("ScripNodeID", GetQueryString("FK_Node"));
gwf.SetPara("ScripMsg", val);
gwf.Update();
}
}
//如果启用了流程流转自定义,必须设置选择的游离态节点
if ($('[name=TransferCustom]').length > 0) {
var ens = new Entities("BP.WF.TransferCustoms");
ens.Retrieve("WorkID", paramData.WorkID, "IsEnable", 1);
if (ens.length == 0) {
alert("该节点启用了流程流转自定义,但是没有设置流程流转的方向,请点击流转自定义按钮进行设置");
return false;
}
msg = "";
$.each(ens, function (i, en) {
if (en.Worker == null || en.Worker == "")
msg += "节点[" + en.NodeName + "],";
})
if (msg != "") {
msg += "没有设置接收人。";
alert(msg);
return false;
}
}
//发送前事件
if (typeof beforeSend != 'undefined' && beforeSend instanceof Function)
if (beforeSend() == false)
return false;
/**发送前处理的信息 Start**/
//SDK表单
if (formType == 3) {
if (SDKSend() == false)
return false;
}
//嵌入式表单
if (formType == 2) {
if (SendSelfFrom() == false)
return false;
}
//表单方案:傻瓜表单、自由表单、开发者表单、累加表单、绑定表单库的表单(单表单)
if (formType == 0 || formType == 1 || formType == 10 || formType == 11 || formType == 12) {
if (NodeFormSend() == false)
return false;
}
//绑定多表单
if (formType == 5)
if (FromTreeSend() == false)
return false;
if (IsRecordUserLog == true) {
if (paramData.FK_Node == parseInt(paramData.FK_Flow) + "01")
UserLogInsert("StartFlow", "发起流程");
else
UserLogInsert("TodoList", "处理待办");
}
return true;
}
/**
* 流程发送的方法,这个是通用的方法
* @param {isHuiQian} isHuiQian 是否是会签模式
* @param {formType} formType 表单方案模式
*/
var IsRecordUserLog = getConfigByKey("IsRecordUserLog", false);
var isSaveOnly = true;
function Send(isHuiQian, formType, isDelayedSend) {
isDelayedSend = isDelayedSend || 0;
if (beforeSendCheck(formType) == false)
return false;
/**发送前处理的信息 End**/
var isShowToNode = true;
if (wf_node != null && wf_node.CondModel == 1 && wf_node.IsBackTrack == 0) {
//协作模式
if (wf_node.TodolistModel == 1) {
var gwf = new Entity("BP.WF.GenerWorkFlow", GetQueryString("WorkID"));
var huiqianSta = gwf.GetPara("HuiQianTaskSta");
var todoEmps = gwf.TodoEmps.split(";");
if (todoEmps.length > 1)
isShowToNode = false;
}
if (isShowToNode == true) {
isSaveOnly = true;
$('[name=SaveBtn]').attr("saveType", 1);
$('[name=SaveBtn]').trigger("click");
$('[name=SaveBtn]').attr("saveType",0);
if (isSaveOnly == false)
return;
var url = ccbpmPath + "/WF/WorkOpt/ToNodes.htm?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&PWorkID=" + GetQueryString("PWorkID") + "&IsSend=0" + "&s=" + Math.random();
initModal("SelectNodeUrl", null, url, isDelayedSend);
return false;
}
}
window.hasClickSend = true; //标志用来刷新待办.
var toNodeID = 0;
var isReturnNode = 0;
//含有发送节点 且接收
if ($('#DDL_ToNode').length > 0) {
var gwf = new Entity("BP.WF.GenerWorkFlow", GetQueryString("WorkID"));
var isLastHuiQian = true;
//待办人数
var todoEmps = gwf.TodoEmps;
if (todoEmps != null && todoEmps != undefined) {
var huiqianSta = gwf.GetPara("HuiQianTaskSta") == 1 ? true : false;
if (wf_node.TodolistModel == 1 && huiqianSta == true && todoEmps.split(";").length > 1)
isLastHuiQian = false;
}
var selectToNode = $('#TB_ToNode').data();
toNodeID = selectToNode.id;
if (selectToNode.IsSelected == 2)
isReturnNode = 1;
if (selectToNode.IsSelectEmps == "1" && isLastHuiQian == true) { //跳到选择接收人窗口
isSaveOnly = true;
$('[name=SaveBtn]').attr("saveType", 1);
$('[name=SaveBtn]').trigger("click");
$('[name=SaveBtn]').attr("saveType", 0);
if (isSaveOnly == false)
return;
if (isHuiQian == true) {
initModal("HuiQian", toNodeID);
} else {
initModal("sendAccepter", toNodeID, null, isDelayedSend);
}
return false;
}
if (selectToNode.IsSelectEmps == "2") {
isSaveOnly = true;
$('[name=SaveBtn]').attr("saveType", 1);
$('[name=SaveBtn]').trigger("click");
$('[name=SaveBtn]').attr("saveType", 0);
if (isSaveOnly == false)
return;
if (isHuiQian == true) {
initModal("HuiQian", toNodeID);
} else {
var url = selectToNode.DeliveryParas;
if (url != null && url != undefined && url != "") {
url = url + "?FK_Node=" + paramData.FK_Node + "&FID=" + paramData.FID + "&WorkID=" + paramData.WorkID + "&FK_Flow=" + paramData.FK_Flow + "&ToNode=" + toNodeID + "&s=" + Math.random();
initModal("BySelfUrl", toNodeID, url, isDelayedSend);
return false;
}
}
}
if (selectToNode.IsSelectEmps == "3") {
isSaveOnly = true;
$('[name=SaveBtn]').attr("saveType", 1);
$('[name=SaveBtn]').trigger("click");
$('[name=SaveBtn]').attr("saveType", 0);
if (isSaveOnly == false)
return;
//Save(1); //执行保存.
if (isHuiQian == true) {
initModal("HuiQian", toNodeID);
} else {
initModal("sendAccepterOfOrg", toNodeID, null, isDelayedSend);
}
return false;
}
if (selectToNode.IsSelectEmps == "4") {
isSaveOnly = true;
$('[name=SaveBtn]').attr("saveType", 1);
$('[name=SaveBtn]').trigger("click");
$('[name=SaveBtn]').attr("saveType", 0);
if (isSaveOnly == false)
return;
if (isHuiQian == true) {
initModal("HuiQian", toNodeID);
} else {
initModal("AccepterOfDept", toNodeID, null, isDelayedSend);
}
return false;
}
if (selectToNode.IsSelectEmps == "5") {
isSaveOnly = true;
$('[name=SaveBtn]').attr("saveType", 1);
$('[name=SaveBtn]').trigger("click");
$('[name=SaveBtn]').attr("saveType", 0);
if (isSaveOnly == false)
return;
if (isHuiQian == true) {
initModal("HuiQian", toNodeID);
} else {
initModal("AccepterOfOfficer", toNodeID, null, isDelayedSend);
}
return false;
}
if (isHuiQian == true) {
isSaveOnly = true;
$('[name=SaveBtn]').attr("saveType", 1);
$('[name=SaveBtn]').trigger("click");
$('[name=SaveBtn]').attr("saveType", 0);
if (isSaveOnly == false)
return;
initModal("HuiQian", toNodeID);
return false;
}
}
//执行发送.
execSend(toNodeID, formType, isReturnNode);
}
//const asyncLoad = () => new Promise((resolve, _) => {
// const index = layer.open( {
// content: '正在发送...',
// shade: [0.2, '#000'],
// title: '',
// btn: [],
// closeBtn: 0,
// icon:16,
// })
// setTimeout(() => {
// resolve(index);
// },16)
//})
function execSend(toNodeID, formType, isReturnNode) {
//正在发送弹出层
//var index = layer.msg('正在发送,请稍后..', {
// icon: 16
// , shade: 0.01,
//});
//var index = layer.load();//此处用layui加载动画
//先设置按钮等不可用.
setToobarDisiable();
layui.form.on('submit(Send)', async function (data) {
//提交信息的校验
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddUrlData();
if (formType != 3 && formType != 2) {
var formData = getFormData(data.field);
for (var key in formData) {
handler.AddPara(key, encodeURIComponent(formData[key]));
}
}
handler.AddPara("ToNode", toNodeID);
handler.AddPara("IsReturnNode", isReturnNode);
const idx = await asyncLoad("正在发送,请稍后..");
try {
var data = handler.DoMethodReturnString("Send"); //执行保存方法.
layer.close(idx);//关闭正在发送
if (data.indexOf('err@') == 0) { //发送时发生错误
var reg = new RegExp('err@', "g")
var data = data.replace(reg, '');
layer.alert(data);
setToobarEnable();
return false;
}
if (data.indexOf('TurnUrl@') == 0) { //发送成功时转到指定的URL
var url = data;
url = url.replace('TurnUrl@', '');
SetHref(url);
return false;
}
if (data.indexOf('SelectNodeUrl@') == 0) {
var url = data;
url = url.replace('SelectNodeUrl@', '');
initModal("SelectNodeUrl", null, url);
return false;
}
if (data.indexOf('BySelfUrl@') == 0) { //发送成功时转到自定义的URL
var url = data;
url = url.replace('BySelfUrl@', '');
initModal("BySelfUrl", null, url);
return false;
}
if (data.indexOf('url@') == 0) { //发送成功时转到指定的URL
if (data.indexOf("AccepterOfOrg") != -1) {
var params = data.split("&");
for (var i = 0; i < params.length; i++) {
if (params[i].indexOf("ToNode") == -1)
continue;
toNodeID = params[i].split("=")[1];
break;
}
initModal("sendAccepterOfOrg", toNodeID);
return false;
}
if (data.indexOf("AccepterOfDept") != -1) {
var params = data.split("&");
for (var i = 0; i < params.length; i++) {
if (params[i].indexOf("ToNode") == -1)
continue;
toNodeID = params[i].split("=")[1];
break;
}
initModal("AccepterOfDept", toNodeID);
return false;
}
if (data.indexOf("AccepterOfOfficer") != -1) {
var params = data.split("&");
for (var i = 0; i < params.length; i++) {
if (params[i].indexOf("ToNode") == -1)
continue;
toNodeID = params[i].split("=")[1];
break;
}
initModal("AccepterOfOfficer", toNodeID);
return false;
}
if (data.indexOf('Accepter') != 0 && data.indexOf('AccepterGener') == -1) {
//求出来 url里面的FK_Node=xxxx
var params = data.split("&");
for (var i = 0; i < params.length; i++) {
if (params[i].indexOf("ToNode") == -1)
continue;
toNodeID = params[i].split("=")[1];
break;
}
initModal("sendAccepter", toNodeID);
return false;
}
var url = data;
url = url.replace('url@', '');
SetHref(url);
return false;
}
OptSuc(data);
return false;
} catch {
layer.close(idx);
}
});
}
//调用后,就关闭刷新按钮.
function returnWorkWindowClose(data) {
if (data == "" || data == "取消") {
layer.close(layer.index);
setToobarEnable();
return;
}
layer.close(layer.index);
if (data == undefined) {
//应该关闭页面
if (window.top.vm && typeof window.top.vm.closeCurrentTabs == "function")
window.top.vm.closeCurrentTabs(window.top.vm.selectedTabsIndex);
else {
// 取得父页面URL用于判断是否是来自测试流程
var pareUrl = window.top.document.referrer;
if (pareUrl.indexOf("test") != -1 || pareUrl.indexOf("Test") != -1) {
// 测试流程时,发送成功刷新测试容器页面右侧
window.parent.parent.refreshRight();
}
window.close();
}
return;
}
//通过下发送按钮旁的下拉框选择下一个节点
if (data != null && data != undefined && data.indexOf('SaveOK@') == 0) {
//说明保存人员成功,开始调用发送按钮.
var toNode = 0;
//含有发送节点 且接收
if ($('#TB_ToNode').length > 0) {
var selectToNode = $('#TB_ToNode').data();
toNode = selectToNode.No;
}
execSend(toNode);
return false;
} else {//可以重新打开接收人窗口
winSelectAccepter = null;
}
if (data != null && data != undefined && (data.indexOf('err@') == 0 || data == "取消")) {//发送时发生错误
layer.alert(data);
return false;
}
OptSuc(data);
}
//发送 退回 移交等执行成功后转到 指定页面
var interval;
function OptSuc(msg) {
if (window.parent != null && window.parent.WindowCloseReloadPage != null && typeof window.parent.WindowCloseReloadPage === "function") {
window.parent.WindowCloseReloadPage(msg);
} else {
if (typeof WindowCloseReloadPage != 'undefined' && WindowCloseReloadPage instanceof Function)
WindowCloseReloadPage(msg);
}
layer.close(layer.index);
if (msg == null || msg == undefined)
msg = "";
msg = msg.replace("@查看<img src='./Img/Btn/PrintWorkRpt.gif' >", '')
msg = msg.replace(/@/g, '<br/>').replace(/null/g, '');
if (msg.indexOf("err@") != -1) {
layer.alert(msg);
setToobarEnable();
return false;
}
var WF_WorkOpt_LeftSecond = getConfigByKey("WF_WorkOpt_LeftSecond", 30);
layer.open({
type: 1
, id: 'layerDemo'
, content: msg
, btn: ["确定(" + WF_WorkOpt_LeftSecond-- + "秒)"]
, btnAlign: 'r' //按钮居中
, area: ['40%', '40%']
, shade: 0
, yes: function () {
layer.closeAll();
}
, success: function (layero, index) {
var timer = null;
var fn = function () {
layero.find(".layui-layer-btn0").text("确定(" + WF_WorkOpt_LeftSecond + "秒)");
if (WF_WorkOpt_LeftSecond == 0) {
layer.close(index);
clearInterval(timer);
closeWindow();
}
WF_WorkOpt_LeftSecond--;
};
timer = setInterval(fn, 1000);
fn();
}
, end: function () {
clearInterval(interval);
closeWindow();
}
});
$("#layerDemo").css("padding", "0px 20px");
}
/**
* 关闭弹出消息页面同时关闭父页面
*/
function closeWindow() {
if (window.top.vm && typeof window.top.vm.closeCurrentTabs == "function") {
if (window.top.vm.selectedTabsIndex == undefined)
window.close();
else
window.top.vm.closeCurrentTabs(window.top.vm.selectedTabsIndex);
}
else {
// 取得父页面URL用于判断是否是来自测试流程
var pareUrl = window.top.document.referrer;
if (pareUrl.indexOf("test") != -1 || pareUrl.indexOf("Test") != -1) {
// 测试流程时,发送成功刷新测试容器页面右侧
window.parent.parent.refreshRight();
}
window.close();
}
}
/**
* SDK表单的发送前的验证
*/
function SDKSend() {
if (Save() == false) {
alert("信息保存失败");
return false;
}
//审核信息的保存
if ($("#WorkCheck_Doc").length == 1 ||$("#WorkCheck_Doc0").length == 1) {
//保存审核信息
SaveWorkCheck();
if (isCanSend == false)
return false;
}
return true;
}
/**
* 节点表单发送前的验证
*/
function NodeFormSend() {
if (typeof isChartFrm != "undefined" && isChartFrm == true && $("#ChapterIFrame").length > 0) {
//获取IFrame的页面
var frame = $("#ChapterIFrame")[0];
if (frame && frame.contentWindow.Save != undefined && typeof (frame.contentWindow.Save) == "function") {
var flag = frame.contentWindow.Save(false);
if (flag == false) {
return false;
}
}
return true;
}
//检查,保存从表
if ($("[name=Dtl]").length > 0) {
var formCheckResult = true;
$("[name=Dtl]").each(function (i, obj) {
var contentWidow = obj.contentWindow;
if (contentWidow != null) {
if (contentWidow.SaveAll != undefined && typeof (contentWidow.SaveAll) == "function") {
var isTrue = contentWidow.SaveAll();
if (isTrue == false)
formCheckResult = false;
}
//最小从表明细不为0
if (contentWidow.CheckDtlNum != undefined && typeof (contentWidow.CheckDtlNum) == "function") {
if (contentWidow.CheckDtlNum() == false) {
layer.alert("[" + contentWidow.sys_MapDtl.Name + "]明细不能少于最小数量" + contentWidow.sys_MapDtl.NumOfDtl + "");
formCheckResult = false;
}
}
}
});
if (formCheckResult == false)
return false;
}
//审核组件
if ($("#WorkCheck_Doc").length == 1 || $("#WorkCheck_Doc0").length == 1) {
//保存审核信息
SaveWorkCheck();
if (isCanSend == false)
return false;
}
if (checkBlanks() == false) {
layer.alert("必填项不能为空");
return false;
}
if (typeof checkReg == "undefined")
return true;
if (checkReg() == false)
return false;
//附件检查
var msg = checkAths();
if (msg != "") {
alert(msg);
return false;
}
return true;
}
/**
* 绑定多表单发送前的验证
*/
function FromTreeSend() {
//保存前事件
if (typeof beforeSend != 'undefined' && beforeSend instanceof Function)
if (beforeSend() == false)
return false;
if (Save(1) == false)
return false;
return true;
}
/**
* 嵌入式表单
*/
function SendSelfFrom() {
var val = SaveSelfFrom();
if (val == false) {
return false;
}
if (val != true) {
//就说明是传来的参数这些参数需要存储到WF_GenerWorkFlow里面去用于方向条件的判断。
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddPara("WorkID", GetQueryString("WorkID"));
handler.AddPara("Paras", val);
handler.DoMethodReturnString("SaveParas");
}
return true;
}
/**
* 暂时不起作用
*/
function SysCheckFrm() {
}
/**
* 保存后的事件
* @param {any} formType 表单方案类型
*/
function SaveEnd(formType) {
//SDK表单保存表单中的信息
if (formType == 3) {
}
}
//关注 按钮.
function FocusBtn(btn, workid) {
btn = $('[name=Focus]');
if (btn.length == 1) {
if (btn[0].innerText.trim() == "关注") {
btn[0].innerHTML = "<img src='Img/Btn/Focus.png' width='22px' height='22px'>&nbsp;取消关注";
}
else {
btn[0].innerHTML = "<img src='Img/Btn/Focus.png' width='22px' height='22px'>&nbsp;关注";
}
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddPara("WorkID", workid);
handler.DoMethodReturnString("Focus"); //执行保存方法.
}
}
//确认 按钮.
function ConfirmBtn(btn, workid) {
if (btn.innerText.trim() == '确认') {
btn.innerHTML = "<img src='Img/Btn/Focus.png' width='22px' height='22px'>&nbsp;取消确认";
}
else {
btn.innerHTML = "<img src='Img/Btn/Focus.png' width='22px' height='22px'>&nbsp;确认";
}
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddPara("WorkID", workid);
handler.DoMethodReturnString("Confirm");
}
//结束流程.
function DoStop(msg, flowNo, workid) {
layer.confirm('您确定要执行 [' + msg + '] ?', function (index) {
layer.close(index);
//流程结束前
if (typeof beforeStopFow != 'undefined' && beforeStopFow instanceof Function)
if (beforeStopFow() == false)
return false;
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddPara("FK_Flow", flowNo);
handler.AddPara("WorkID", workid);
var data = handler.DoMethodReturnString("MyFlow_StopFlow");
layer.alert(data);
if (data.indexOf('err@') == 0)
return;
//流程结束后
if (typeof afterStopFow != 'undefined' && afterStopFow instanceof Function)
if (afterStopFow() == false)
return false;
closeWindow();
})
}
//执行分支流程退回到分合流节点。
function DoSubFlowReturn(fid, workid, fk_node) {
var url = 'ReturnWorkSubFlowToFHL.htm?FID=' + fid + '&WorkID=' + workid + '&FK_Node=' + fk_node;
var v = WinShowModalDialog(url, 'df');
SetHref(window.history.url);
}
//结束子流程
function DoDelSubFlow(fk_flow, workid) {
if (window.confirm('您确定要终止进程吗?') == false)
return;
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddPara("FK_Flow", fk_flow);
handler.AddPara("WorkID", workid);
var data = handler.DoMethodReturnString("DelSubFlow"); //删除子流程..
alert(data);
Reload();
}
//删除流程
function DeleteFlow() {
//让用户决定的方式删除
if (wf_node.DelEnable == 4) {
//按照用户选择的方式删除
var url = "./WorkOpt/DeleteFlowInstance.htm?WorkID=" + paramData.WorkID + "&FK_Node=" + paramData.FK_Node + "&FK_Flow=" + paramData.FK_Flow;
var width = window.innerWidth * 3 / 5;
var height = 80;
OpenLayuiDialog(url, "选择删除的方式", width, height, "auto");
return;
}
//彻底删除
if (wf_node.DelEnable == 3) {
layer.confirm('删除后流程实例不可恢复,你确定要彻底删除流程吗?', function (index) {
layer.close(index);
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddPara("FK_Flow", GetQueryString("FK_Flow"));
handler.AddPara("FK_Node", GetQueryString("FK_Node"));
handler.AddPara("WorkID", GetQueryString("WorkID"));
handler.AddPara("DelEnable", wf_node.DelEnable);
var str = handler.DoMethodReturnString("DeleteFlow");
layer.alert(str);
closeWindow();
});
return;
}
//逻辑删除/写入日志方式的删除
layer.prompt({
formType: 2,
value: '删除原因',
title: '请输入删除流程的原因',
offset: '100px'
}, function (value, index, elem) {
layer.close(index);
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddPara("FK_Flow", GetQueryString("FK_Flow"));
handler.AddPara("FK_Node", GetQueryString("FK_Node"));
handler.AddPara("WorkID", GetQueryString("WorkID"));
handler.AddPara("Msg", value);
handler.AddPara("DelEnable", wf_node.DelEnable);
var str = handler.DoMethodReturnString("DeleteFlow");
layer.alert(str);
closeWindow();
});
}
/**------------------------子线程退回分流节点的工作处理器按钮操作-------------------------------**/
/**
* 驳回子线程
*/
function ReSend() {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddUrlData();
var data = handler.DoMethodReturnString("ReSend");
if (data.indexOf("err@") != -1) {
layer.alert(data);
return;
}
OptSuc(data);
}
/**
* 取消子线程
*/
function KillThread() {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddUrlData();
var data = handler.DoMethodReturnString("KillThread");
if (data.indexOf("err@") != -1) {
layer.alert(data);
return;
}
window.close();
}
/**
* 撤销整体发送
*/
function UnSendAllThread() {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddUrlData();
var data = handler.DoMethodReturnString("UnSendAllTread");
if (data.indexOf("err@") != -1) {
layer.alert(data);
return;
}
if (data.indexOf("url@") != -1) {
var url = data.replace("url@", "");
SetHref(url);
}
}
/**
* 增加子线程
*/
function AddThread(toNodeID) {
if (toNodeID == null || toNodeID == undefined || toNodeID == "")
toNodeID=0;
if (wf_node.RunModel == 2 || wf_node.RunModel == 3) {
var msg = "说明:";
msg += "\t\n 1. 新增加的人员,从分流节点的下一个节点开始执行.";
msg += "\t\n 2. 输入人员账号,点击确定后,系统就会自动为该人员分配一个任务.";
var empNo = promptGener(msg + ' 请输入要增加的人员账号,多个人员用逗号分开(比如:zhangsan,lisi):');
if (empNo == null || empNo == '')
return;
var workid = GetQueryString("WorkID");
var en = new Entity("BP.WF.GenerWorkFlow", GetQueryString("FID"));
var data = en.DoMethodReturnString("DoSubFlowAddEmps", empNo, toNodeID);
layer.alert(data);
Reload();
return;
}
layer.alert('您没有权限增加人员.');
}
/**------------------------子线程退回分流节点的工作处理器按钮操作-------------------------------**/
//催办
function Press() {
var msg = window.prompt('请输入催办信息', '该工作因为xxx原因需要您优先处理.');
if (msg == null)
return;
var handler = new HttpHandler("BP.WF.HttpHandler.WF");
handler.AddUrlData();
handler.AddPara("Msg", msg);
var data = handler.DoMethodReturnString("Runing_Press");
if (data.indexOf('err@') == 0) {
console.log(data);
layer.alert(data);
return;
}
layer.alert(data);
}
/***
*
* 撤销
*/
function UnSend(type) {
type = type || 0;
if (window.confirm('您确定要撤销本次发送吗?') == false)
return;
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyView");
handler.AddUrlData();
handler.AddPara("IsUnDelayedSend", type);
var data = handler.DoMethodReturnString("MyView_UnSend");
if (data.indexOf('err@') == 0) {
data = data.replace('err@', '');
data = data.replace('err@', '');
alert(data);
return;
}
var url = 'MyFlow.htm?FK_Flow=' + GetQueryString("FK_Flow") + '&WorkID=' + GetQueryString("WorkID") + '&FID=' + GetQueryString("FID");
SetHref(url);
return;
}
/**
* 发起子流程
* @param {any} subFlowNo 子流程编号
*/
function SendSubFlow(subFlowNo, subFlowMyPK) {
var W = document.body.clientWidth - 340;
var url = "./WorkOpt/SubFlowGuid.htm?SubFlowMyPK=" + subFlowMyPK + "&WorkID=" + GetQueryString("WorkID") + "&FK_Flow=" + GetQueryString("FK_Flow") + "&FK_Node=" + GetQueryString("FK_Node");
OpenLayuiDialog(url,"选择", W,80,
"auto", false, true, true, function () {
debugger
var iframe = $(window.frames["dlg"]).find("iframe");
if (iframe) {
var result = iframe[0].contentWindow.Btn_OK();
if (result == true) {
var subFlowGuid = new Entity("BP.WF.Template.SFlow.SubFlowHandGuide", subFlowMyPK);
if (subFlowGuid.SubFlowHidTodolist == 1) {
if (window.parent != null && window.parent != undefined)
window.parent.close();
else
window.close();
}
//显示子流程信息
var html = SubFlow_Init(wf_node);
$("#SubFlow").html("").html(html);
}
}
}, null, function () {
});
}
/**
* 发送子线程
*/
function StartThread() {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddPara("WorkID", GetQueryString("WorkID"));
handler.AddPara("FK_Flow", GetQueryString("FK_Flow"));
handler.AddPara("FK_Node", GetQueryString("FK_Node"));
var data = handler.DoMethodReturnString("MyFlow_StartThread");
if (data.indexOf("err@") != -1) {
alert(data);
console.log(data);
return;
}
if (data == null || data == undefined)
data = "";
data = data.replace("@查看<img src='./Img/Btn/PrintWorkRpt.gif' >", '');
data = data.replace(/@/g, '<br/>').replace(/null/g, '');
layer.open({
type: 1
, id: 'HelpAlter'
, content: msg
, btn: ["确定"]
, btnAlign: 'r' //按钮居中
, area: ['40%', '40%']
, shade: 0
, yes: function () {
layer.closeAll();
}
, success: function (layero, index) {
if ($("#SubFlow").length == 1) {
$("#SubFlow").html(SubFlow_Init(wf_node));
}
}
});
$("#HelpAlter").css("padding", "0px 20px");
}
/**
* 帮助提醒
*/
function HelpAlter() {
if (wf_node == null)
return;
var node = wf_node;
//判断该节点是否启用了帮助提示 0 禁用 1 启用 2 强制提示 3 选择性提示
var btnLab = new Entity("BP.WF.Template.BtnLab", node.NodeID);
if (btnLab.HelpRole != 0) {
var count = 0;
if (btnLab.HelpRole == 3) {
var mypk = webUser.No + "_ND" + node.NodeID + "_HelpAlert";
var userRegedit = new Entity("BP.Sys.UserRegedit");
userRegedit.SetPKVal(mypk);
count = userRegedit.RetrieveFromDBSources();
}
if (btnLab.HelpRole == 2 || (count == 0 && btnLab.HelpRole == 3)) {
var filename = basePath + "/DataUser/CCForm/HelpAlert/" + node.NodeID + ".htm";
var htmlobj = $.ajax({ url: filename, async: false });
if (htmlobj.status == 404)
return;
var str = htmlobj.responseText;
if (str != null && str != "" && str != undefined) {
layer.open({
type: 1
, id: 'HelpAlter'
, content: str
, btnAlign: 'r' //按钮居中
, area: ['40%', '40%']
, shade: 0
, success: function (layer, index) {
//保存用户的帮助指引信息操作
var mypk = webUser.No + "_ND" + node.NodeID + "_HelpAlert"
var userRegedit = new Entity("BP.Sys.UserRegedit");
userRegedit.SetPKVal(mypk);
var count = userRegedit.RetrieveFromDBSources();
if (count == 0) {
//保存数据
userRegedit.FK_Emp = webUser.No;
userRegedit.FK_MapData = "ND" + node.NodeID;
userRegedit.Insert();
}
}
});
$("#HelpAlter").css("padding", "0px 20px");
}
}
}
}
//打印Html
function printHtml() {
if (typeof isFool != "undefined" && isFool == true) {
initModal("PackUp_html");
return;
}
//判断是否打印单表单
var targetNode = null;
var document = window.document;
if ($("#CCForm").length != 0) {
var bodyNode = window.document.body.cloneNode(true);
targetNode = bodyNode.querySelector('#ContentDiv');
targetNode.querySelectorAll('#CCForm')[0].style.width = $('#ContentDiv').css("width");
if (!targetNode) {
alert("没有找到文档节点")
return
}
} else {
var targetIframes = Array.from(document.querySelectorAll('.tab-iframe'))
var iframe = targetIframes.find(function (iframe) {
return iframe.parentNode.style.display !== 'none';
})
if (iframe) {
document = iframe.contentDocument;
const bodyNode = iframe.contentDocument.body.cloneNode(true);
targetNode = bodyNode.querySelector('.doc');
if (!targetNode) {
alert("没有找到文档节点")
return
}
}
}
if (targetNode) {
targetNode.querySelectorAll('td').forEach(tdElem => {
tdElem.style.minWidth = '60px';
})
targetNode.querySelectorAll('input').forEach(input => {
//如果是复选框的处理
if (input.parentNode && (window.getComputedStyle(input).display !== 'none' || input.style.display !== 'none') && (input.type == "checkbox" || input.type == 'radio')) {
input.style.display = 'inline';
input.style.marginRight = '5px';
//他的第一个兄弟节点隐藏
input.nextElementSibling.style.display = 'none';
//复选框
if (input.type == "checkbox") {
var val = 0;
if (input.nextElementSibling.className.indexOf('layui-form-checked') != -1)
val = 1;
if (val == 1)
input.setAttribute("checked", true);
const p = document.createElement("span");
p.style.marginRight = '5px';
p.innerHTML = input.getAttribute('title');
input.parentNode.insertBefore(p, input.nextSibling);
}
//单选按钮
if (input.type == "radio") {
var val = 0;
if (input.nextElementSibling.className.indexOf(' layui-form-radioed') != -1)
val = 1;
if (val == 1)
input.setAttribute("checked", true);
}
} else {
if (input.parentNode && window.getComputedStyle(input).display !== 'none' && input.style.display !== 'none' && input.type != 'hidden') {
//如果是傻瓜表单
if (input.className.indexOf("layui-input") != -1) {
input.setAttribute("value", input.value);
} else {
const p = document.createElement("div");
p.innerHTML = input.value
p.style = input.style
p.style.whiteSpace = 'pre-line'
if (input.className.indexOf('layui-unselect') != -1) {
input.nextElementSibling.remove();
p.style.textAlign = 'left';
p.style.paddingLeft = '10px';
}
if (input.className.indexOf('ccdate') != -1 && input.nextElementSibling!=null)
input.nextElementSibling.remove();
input.parentNode.appendChild(p);
input.parentNode.style.maxHeight = '120px'
input.parentNode.style.overflow = 'hidden'
input.parentNode.style.fontSzie = '16px'
input.parentNode.style.lineHeight = '16px'
$(input).hide();
}
}
}
})
targetNode.querySelectorAll('textarea').forEach(textarea => {
if (textarea.parentNode && window.getComputedStyle(textarea).display !== 'none' && textarea.style.display !== 'none' && textarea.type != 'hidden') {
const p = document.createElement("div");
p.innerHTML = textarea.value
p.style = textarea.style
p.style.whiteSpace = 'pre-line'
textarea.parentNode.appendChild(p);
textarea.parentNode.style.maxHeight = '120px'
textarea.parentNode.style.overflow = 'hidden'
textarea.parentNode.style.fontSzie = '16px'
textarea.parentNode.style.lineHeight = '16px'
textarea.remove()
}
})
targetNode.querySelectorAll('select').forEach(select => {
if (select.parentNode && window.getComputedStyle(select).display !== 'none' && select.style.display !== 'none' && select.type != 'hidden') {
select.style.display = 'none';
}
});
//获取从表信息
var dtls = Array.from(targetNode.querySelectorAll('div')).filter(div => {
return div.getAttribute('name') == 'Dtl';
});
dtls.forEach(dtl => {
dtl.children[0].remove();
})
const html = generateHTML(targetNode, document.styleSheets, `
@media print {
.paper { box-shadow: none !important; page-break-inside: avoid;}
.paper_A4 { width: 21cm !important; height: 27cm !important }
.paper + .paper { margin-top: 0px !important }
/**body{
-webkit-print-color-adjust:exact;
-moz-print-color-adjust:exact;
-ms-print-color-adjust:exact;
print-color-adjust:exact;
}*/
}
.page > div { padding: 1.5cm 0 0 0 !important }
@page {
size: auto;
margin: 1cm;
}
`)
const tempIframe = document.createElement('iframe')
const handler = new HttpHandler("BP.WF.HttpHandler.WF_MyFlow");
handler.AddUrlData();
handler.AddPara("html", html);
handler.AddPara("WorkID", GetQueryString('WorkID'));
handler.AddPara("FK_Node", GetQueryString('FK_Node'));
const filePath = handler.DoMethodReturnString("CreateHtmlFile");
tempIframe.src = basePath + '/' + filePath;
tempIframe.style.height = '0px';
tempIframe.onload = function () {
tempIframe.contentWindow.print();
}
document.body.appendChild(tempIframe);
} else {
alert('当前页面不可打印')
}
}
function getAllCssStyles(sheets) {
let styleTag = '';
for (const sheet of sheets) {
const rules = sheet.rules || sheet.cssRules;
for (const rule of rules) {
styleTag += rule.cssText + ' '
}
}
return styleTag;
}
function generateHTML(dom, styleSheets, extendCssRules = "") {
var css = getAllCssStyles(styleSheets);
return `
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<style>
${css}
${extendCssRules}
.DtlTh{
background-color:rgb(242, 242, 242) !important;
-webkit-print-color-adjust: exact;
}
</style>
<body>
${dom.innerHTML}
</body>
</html>
`
}