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.

440 lines
18 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.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title> 选择节点转向 </title>
<script language="JavaScript" src="../Comm/JScript.js" type="text/javascript"></script>
<script type="text/javascript" src="../Scripts/bootstrap/js/jquery.min.js"></script>
<script type="text/javascript" src="../Scripts/QueryString.js"></script>
<link href="../Scripts/bootstrap/css/bootstrap.css" rel="Stylesheet" />
<script type="text/javascript" src="../Scripts/bootstrap/js/bootstrap.min.js"></script>
<!-- 引用通用的js文件. -->
<script type="text/javascript" src="../Scripts/config.js"></script>
<script type="text/javascript" src="../Comm/Gener.js"></script>
<script src="../../DataUser/JSLibData/CommonShowConfig.js"></script>
<link rel="Stylesheet" href="../../DataUser/Style/ccbpm.css" />
<script type="text/javascript">
var WorkID;
var FK_Flow;
var FK_Node;
var FID;
var toNodeID = 0;//当前选中的节点
var isFrameCross = GetQueryString("isFrameCross");
if (isFrameCross == null || isFrameCross == undefined || isFrameCross == "" || isFrameCross == "null")
isFrameCross = 0;
//判断读秒关闭的参数是否存在
if ("undefined" == typeof WF_WorkOpt_LeftSecond) {
var WF_WorkOpt_LeftSecond = 30;
}
//初始化数据
$(function () {
WorkID = GetQueryString("WorkID");
FK_Flow = GetQueryString("FK_Flow");
FK_Node = GetQueryString("FK_Node");
FID = GetQueryString("FID");
var handler = new HttpHandler("BP.WF.HttpHandler.WF_WorkOpt");
handler.AddUrlData();
var data = handler.DoMethodReturnString("ToNodes_Init");
if (data.indexOf("err@") != -1) {
alert(data);
return;
}
data = JSON.parse(data);
var nodes = data.Nodes;
var selectNodeID = data.SelectNode[0].NodeID;
var html = "";
var isSubYBD = false; //异表单
for (var i = 0; i < nodes.length; i++) {
var checked = "";
//判断节点是否为异表单
var node = nodes[i];
if (node.NodeID == 0) {
if (node.NodeID == selectNodeID)
checked = "checked=checked";
html += "<span><input type='radio' id='RB_UnSameSheet' name='nodeSelect' value='RB_UnSameSheet' " + checked + " onclick='RBUnSameSheet(this);'>";
html += "<label for='RB_UnSameSheet'><b><font color=green>可以分发启动的异表单节点</font></b></label></span>";
html += "<br/><br>";
isSubYBD = true;
continue;
}
//已有人员直接显示到人员选择器a标签上
var emps = new Entities("BP.WF.Template.SelectAccpers");
emps.Retrieve("FK_Node", node.NodeID, "WorkID", WorkID);
var addSpan = "";
if (emps != null && emps.length > 0) {
for (var k = 0; k < emps.length; k++) {
if (k == 4) {
addSpan += emps[k].EmpName + "...";
break;
}
else {
if (k == emps.length - 1) {
addSpan += emps[k].EmpName;
}
else {
addSpan += emps[k].EmpName + ",";
}
}
}
}
addSpan = "<span style='color:black;' id='SP_" + node.NodeID + "'>(" + addSpan + ")</span>";
//异表单选择可以同时发送给多个节点
if (isSubYBD == true) {
if (node.NodeID == selectNodeID)
checked = "checked=checked";
html += "&nbsp;&nbsp;<input type='checkbox' id='CB_" + node.NodeID + "' name='nodeSelect' " + checked + ">";
html += "<label for='CB_" + node.NodeID + "'>" + node.Name + "</label>";
//上一步发送人选择或者是根据工程类项目由发送人选择
if (node.DeliveryWay == 4 || node.DeliveryWay == 21) {
html += "- <a id=\"acc_link_" + node.NodeID + "\" href='javaScript:void(0)' onclick='SelectEmps(\"Accepter\",\"" + node.NodeID + "\")'>选择处理人" + addSpan + "</a>";
}
if (node.DeliveryWay == 43)
html += "- <a id=\"acc_link_" + node.NodeID + "\" href='javaScript:void(0)' onclick='SelectEmps(\"AccepterOfOrg\",\"" + node.NodeID + "\")'>选择处理人" + addSpan + "</a>";
html += "<br/><br/>";
}
if (isSubYBD == false) {
if (node.NodeID == selectNodeID)
checked = "checked=checked";
html += "<input type='radio' id='RB_" + node.NodeID + "' name='nodeSelect' value='RB_" + node.NodeID + "' " + checked + " onclick='SetUnEable(this);'>";
html += "<label for='RB_" + node.NodeID + "'>" + node.Name + "</label>";
//上一步发送人选择或者是根据工程类项目由发送人选择
if (node.DeliveryWay == 4 || node.DeliveryWay == 21) {
html += "- <a id=\"acc_link_" + node.NodeID + "\" href='javaScript:void(0)' onclick='SelectEmps(\"Accepter\",\"" + node.NodeID + "\")'>选择处理人" + addSpan + "</a>";
}
if (node.DeliveryWay == 43)
html += "- <a id=\"acc_link_" + node.NodeID + "\" href='javaScript:void(0)' onclick='SelectEmps(\"AccepterOfOrg\",\"" + node.NodeID + "\")'>选择处理人" + addSpan + "</a>";
html += "<br/><br/>";
}
}
var tr = $(html);
$("#TableNode").append(tr);
$("input:radio:first").prop("checked", true);
var int = setInterval("clock()", 1000);
});
function SetUnEable(ctrl) {
SetEnable(true);
}
function RBUnSameSheet(ctrl) {
if (ctrl.checked) {
SetEnable(false);
}
else {
SetEnable(true);
}
}
function SetEnable(enable) {
var arrObj = document.all;
for (var i = 0; i < arrObj.length; i++) {
if (typeof arrObj[i].type != "undefined" && arrObj[i].type == 'checkbox') {
arrObj[i].disabled = enable;
}
}
}
function SetRBSameSheetCheck() {
var arrObj = document.all;
for (var i = 0; i < arrObj.length; i++) {
if (typeof arrObj[i].type != "undefined" && arrObj[i].id.valueOf('RB_SameSheet') != -1) {
arrObj[i].checked = true;
break;
}
}
}
function returnWorkWindowClose(data) {
if (data != "取消")
document.getElementById("SP_" + toNodeID).innerHTML = "(" + data + ")";
$('#returnWorkModal').modal('hide');
}
//选择接受人
function SelectEmps(OperHtml, nodeID) {
toNodeID = nodeID;
$('#modalHeader').text("选择接受人");
modalIframeSrc = "./" + OperHtml + ".htm?FK_Node=" + FK_Node + "&FID=" + FID + "&WorkID=" + WorkID + "&FK_Flow=" + FK_Flow + "&ToNode=" + nodeID + "&IsSend=0" + "&s=" + Math.random();
$('#iframeReturnWorkForm').attr('src', modalIframeSrc);
$('#returnWorkModal').modal().show();
}
//选择节点发送
function Send() {
//获取选择的节点
//获取同表单或者这个普通节点的选择的值
var nodeID = $('input:radio:checked').val();
var toNode = ""; // 跳转的节点
if (nodeID == null || nodeID == "") {
alert("您没有选择到达的节点");
return;
}
//获取选择的异表单
if (nodeID == "RB_UnSameSheet") {
$.each($('input:checkbox'), function () {
if (this.checked)
toNode += this.id.replace("CB_", "") + ",";
});
} else
toNode = nodeID.replace("RB_", "");
if (toNode == "") {
alert("您没有选择到达的节点");
return;
}
//执行发送
var handler = new HttpHandler("BP.WF.HttpHandler.WF_WorkOpt");
handler.AddUrlData();
handler.AddPara("ToNodes", toNode);
var data = handler.DoMethodReturnString("ToNodes_Send");
if (data.indexOf('err@') == 0) { //发送时发生错误
alert(data);
return;
}
if (isFrameCross == 0) {
if (window.parent != null && window.parent.WindowCloseReloadPage != null && typeof window.parent.WindowCloseReloadPage === "function") {
window.parent.WindowCloseReloadPage(data);
} else {
if (typeof WindowCloseReloadPage != 'undefined' && WindowCloseReloadPage instanceof Function)
WindowCloseReloadPage(data);
}
} else {
ChildrenPostMessage(data, "WindowCloseReloadPage");
}
if (data.indexOf('TurnUrl@') == 0) { //发送成功时转到指定的URL
var url = data;
url = url.replace('TurnUrl@', '');
SetHref(url);
return;
}
if (data.indexOf('url@') == 0) { //发送成功时转到指定的URL
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;
}
$('#modalHeader').text("选择接受人");
modalIframeSrc = "./Accepter.htm?FK_Node=" + FK_Node + "&FID=" + FID + "&WorkID=" + WorkID + "&FK_Flow=" + FK_Flow + "&ToNode=" + toNode + "&IsSend=0" + "&s=" + Math.random();
$('#iframeReturnWorkForm').attr('src', modalIframeSrc);
$('#returnWorkModal').modal().show();
return;
}
var url = data;
url = url.replace('url@', '');
SetHref(url);
return;
}
data = data.replace('<br/>', '');
data = data.replace('<br/>', '');
data = data.replace('<br/>', '');
data = data.replace('@', '<br/>@');
data = data.replace(/@/g, '<br/>@');
data = data.replace('@', '<br/>@');
data = data.replace(/null/g, '');
data = data.replace("<br><br/><br/>", '');
data += " <div style='text-align:right;margin-right:10px;margin-bottom:10px'><button id='CloseBtn' type='button' onclick='CloseAll();'><img src='../Img/Btn/Close.png' />关 闭(30秒)</button></div>";
$(".Msg").show();
$(".Msg").html(data);
$("#TableNode").hide();
$(".button-bar").hide();
}
function clock() {
if ($("#CloseBtn").length == 0)
return;
WF_WorkOpt_LeftSecond >= 0 ? WF_WorkOpt_LeftSecond-- : clearInterval(int);
$("#CloseBtn").html("<img src='../Img/Btn/Close.png' />关 闭(" + WF_WorkOpt_LeftSecond + "秒)");
if (WF_WorkOpt_LeftSecond == 0)
CloseAll();
//if ($("#CloseBtn").length == 0)
// return;
//num >= 0 ? num-- : clearInterval(int);
//$("#CloseBtn").attr("value", "关 闭(" + num + "秒)");
//if (num == 0)
// CloseAll();
}
//取消移交
function CloseAll() {
if (isFrameCross == 0) {
// 取得父页面URL用于判断是否是来自测试流程
var pareUrl = window.top.document.referrer;
if (pareUrl.indexOf("test") != -1 || pareUrl.indexOf("Test") != -1) {
// 测试流程时,发送成功刷新测试容器页面右侧
window.parent.parent.refreshRight();
}
if (window.parent != null && window.parent.returnWorkWindowClose != null) {
window.parent.close();
if (window.parent.parent != null && window.parent.parent != undefined
&& pareUrl.indexOf("test") == -1 && pareUrl.indexOf("Test") == -1)
window.parent.parent.close();
window.parent.returnWorkWindowClose();
}
} else {
window.parent.parent.close();
ChildrenPostMessage('', "returnWorkWindowClose");
}
window.close();
}
//取消或者返回
function Cancel() {
if (isFrameCross == 0) {
if (window.parent != null && window.parent.returnWorkWindowClose != null) {
window.parent.returnWorkWindowClose();
} else {
$('body').append($('<div>' + "已取消操作" + '</div>'));
window.close();
}
} else {
ChildrenPostMessage('', "returnWorkWindowClose");
}
}
</script>
<base target="_self" />
<style>
label {
display: inline-block;
max-width: 100%;
margin-bottom: 0px;
font-weight: normal;
}
input {
width: 24px;
height: 24px;
margin-right: 6px !important;
float: left;
}
.button-bar {
position: absolute;
left: 0;
right: 0;
bottom: 0;
background: #f2f2f2;
border-top: solid 1px #e5e5e5;
padding: 6px;
text-align: center
}
input[type="radio"], input[type="checkbox"] {
margin: 0;
}
</style>
</head>
<body>
<div id="Div_ToNode" style="padding:15px; font-size:16px;">
<div class="Msg" style="text-align: left;padding-left:55px; display:none;">
<img src='../Img/loading.gif' alt="" />页面数据正在加载中,请稍候......
</div>
<div id="TableNode" style="width:100%;"></div>
<br />
<!--<input type=button id="Btn_Send" onclick="Send();" value="发送" />
<input type=button id="Btn_Cancel" onclick="Cancel();" value="取消/返回" />-->
<div class="button-bar">
<button type=button onclick="Send();" id="Btn_Send" class="btn btn-primary">
发送
</button>
<button type=button onclick="Cancel();" id="Btn_Cancel" class="btn btn-default">
取消/返回
</button>
</div>
</div>
<!--杨玉慧加 提示信息弹出窗口-->
<div class="modal fade" id="msgModal" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content" style="border-radius: 0px;">
<div class="modal-header">
<button type="button" class="close" id="btnMsgModalOK1" aria-hidden="true" style="
opacity: 1; display: none;">
×
</button>
<h4 class="modal-title">
提示信息
</h4>
</div>
<div class="modal-body" style="text-align: left; word-wrap: break-word;">
<div style="width:100%; border: 0px; height: 200px;" id="msgModalContent" name="iframePopModalForm">
</div>
<div style="text-align: right;">
<button type="button" id="btnMsgModalOK" class="btn" data-dismiss="modal">
<img src="../Img/Btn/Confirm.png" />确定
</button>
</div>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
<div class="modal fade" id="returnWorkModal" data-backdrop="static">
<div class="modal-dialog" style="width:97%;height:90%">
<div class="modal-content" style="height:90%">
<div class="modal-header">
<button type="button" style="color:#333;border: solid 1px #ccc !important;width: 32px;height: 32px; border-radius:4px;margin-top:-6px; margin-right:-6px; float: right;background: #f5f5f5;border: none;" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="modalHeader">提示信息</h4>
</div>
<div class="modal-body" style="margin:0px;padding:0px;height:100%;">
<iframe style="width:100%;border:0px;height:100%;" id="iframeReturnWorkForm" name="iframeReturnWorkForm"></iframe>
</div>
</div><!-- /.modal-content -->'
</div><!-- /.modal-dialog -->'
</div>
</body>
</html>