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.

666 lines
27 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>
<title>接受人选择器</title>
<link href="../Scripts/layui/layui/css/layui.css" rel="stylesheet" />
<link href="../Scripts/easyUI145/themes/default/easyui.css" rel="stylesheet" type="text/css" />
<script src="../Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="../Scripts/layui/layui/layui.js" type="text/javascript"></script>
<link href="../Scripts/bootstrap/css/components-rounded.css" rel="stylesheet" />
<!--<script type="text/javascript" src="../Scripts/bootstrap/js/bootstrap.min.js"></script>-->
<script type="text/javascript" src="../Scripts/commonYangYH.js"></script>
<script src="../Scripts/QueryString.js" type="text/javascript"></script>
<script src="../Scripts/bootstrap/js/jquery.cokie.min.js" type="text/javascript"></script>
<script type="text/javascript" src="../Scripts/config.js"></script>
<script src="../Comm/Gener.js" type="text/javascript"></script>
<script type="text/javascript" src="../Scripts/bootstrap/js/jstree.js"></script>
<link href="../Scripts/layui/layui/css/layui.css" rel="stylesheet" />
<link href="../../DataUser/Style/ccbpm.css" rel="Stylesheet" />
<!--
杨玉慧.
1. 初始化的标记是 ?DoType=Accepter_Init&FK_Node=xxxx&ToNode=0&WorkID=xxxxx. 参数: WorkID
返回的是 节点列表 Nodes, 部门列表 Depts, 人员列表 Emps
2, 用户选择一个节点,标记是 DoType=Accepter_Save&FK_Node=xxx&WorkID=xxx&ToNode=xxxx&SelectEmps=zhangsan,lisi.
返回的是: 保存结果.
-->
<style type="text/css">
* {
list-style: none;
text-align: left;
}
body .table tbody tr td {
line-height: 18px;
}
.portlet-body, .portlet-title {
background: #f4f9ff !important;
border-bottom: 0px;
}
.customthr tr:nth-child(2n) {
background: #d4e6fe;
}
.customthr tr:nth-child(2n+1) {
background: #f4f9ff;
}
.customthr thead tr {
background: #d4e6fe !important;
}
/*.btn {
background: #2884fa !important;
border-radius: 3px !important;
color: white !important;
padding: 4px 17px !important;
}
#btnCancel {
background: #50b6ac !important;
border-radius: 3px !important;
color: white !important;
padding: 4px 17px !important;
}*/
/*
input[type=text], select {
border-radius: 15px !important;
border: #2884fa 1px solid !important;
margin: 8px 0px !important;
line-height: 25px;
padding-left: 6px;
}*/
/*#btnSearch {
height: 30px;
border: none;
border-radius: 20px;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
background: #2884fa !important;
color: #fff;
}*/
#txbSearchVal {
font-size: 14px;
}
/*#poptable {
display: none;
}*/
#test {
}
.form_tree {
background: #f4f9ff;
}
.form_tree #orgTxt {
border-radius: 15px 0px 0px 15px !important;
margin: 0px !important;
/*border:#2884fa 1px solid;*/
}
.form_tree .input-group-addon {
border-radius: 0px 15px 15px 0px !important;
/*broder:#2884fa 1px solid;*/
}
#groupTable #dt ul {
/*background: #f4f9ff;*/
font-weight: normal;
background: #d4e6fe;
}
#groupTable #dt > li {
font-weight: bold;
}
#searchS {
overflow: hidden;
}
#searchS div {
height: 40px;
line-height: 40px;
text-align: left;
float: left;
}
</style>
<script type="text/javascript">
var doType = GetQueryString("DoType");
var isFrameCross = GetQueryString("isFrameCross");
if (isFrameCross == null || isFrameCross == undefined || isFrameCross == "" || isFrameCross == "null")
isFrameCross = 0;
var isDelayedSend = GetQueryString("IsDelayedSend") || "0";
var pageFrom = GetQueryString("PageFrom");
$(function () {
var IsSend = GetQueryString("IsSend");
if (IsSend == null || IsSend == undefined)
IsSend = 1;
if (IsSend == 0) {
$("#Btn_Save").show();
$("#Btn_Send").hide();
} else {
$("#Btn_Save").hide();
$("#Btn_Send").show();
}
if (isDelayedSend == "1") {
$("#Btn_Send").hide();
$("#Div_DelayedSend").show();
$("#Btn_DelayedSend").show();
}
var handler = new HttpHandler("BP.WF.HttpHandler.WF_WorkOpt");
handler.AddUrlData(); //这里是获得Url的参数.
var data = handler.DoMethodReturnString("Accepter_Init");
//对返回值处理如果是info 仅仅提示信息.
if (data.indexOf('info@') == 0) {
data = data.replace('info@@', '');
data = data.replace('info@', '');
alert(data);
Close(true);
return;
}
//如果有错误,直接提示错误.
if (data.indexOf('err@') == 0) {
alert(data);
Close(false);
return;
}
if (data.indexOf('TurnUrl@') == 0) { //发送成功时转到指定的URL
var url = data;
url = url.replace('TurnUrl@', '');
parent.window.location.href = filterXSS(url);
return;
}
//如果包含url ,则是需要转向不同的url里面去.
if (data.indexOf('url@') == 0) {
var url = data.replace('url@', '');
if (url.indexOf('ToNode=') > 0)
SetHref(url + "&IsDelayedSend=" + isDelayedSend + "&IsSend=" + GetQueryString("IsSend") + "&isFrameCross=" + isFrameCross + "&PageFrom=" + GetQueryString("PageFrom"));
else
SetHref(url + "&IsDelayedSend=" + isDelayedSend + "&ToNode=" + GetQueryString("ToNode") + "&IsSend=" + GetQueryString("IsSend") + "&PageFrom=" + GetQueryString("PageFrom") + "&isFrameCross=" + isFrameCross);
return;
}
if (data.indexOf('BySelfUrl@') == 0) {
var url = data.replace('BySelfUrl@', '');
if (url.indexOf('ToNode=') > 0)
url += "&IsSend=" + GetQueryString("IsSend") + "&PageFrom=" + GetQueryString("PageFrom");
else
url += "&ToNode=" + GetQueryString("ToNode") + "&IsSend=" + GetQueryString("IsSend") + "&isFrameCross=" + isFrameCross + "&PageFrom=" + GetQueryString("PageFrom");
$('#returnWorkModal', parent.document).modal('hide');
window.parent.initModal("BySelfUrl", null, url); $('#returnWorkModal', parent.document).modal().show();
return;
}
//把string 转化为json.
try {
data = cceval('(' + data + ')');
}
catch (err) {
alert("转换JSON 失败" + err + data);
return;
}
//获得三个数据源.
var depts = data.Depts; //部门集合. 这个集合也可能为空,如果为空就不要分组.
var emps = data.Emps; //可选的人员集合.
var selected = data.Selected; //已经选择的人员集合.
if (emps == null || emps == undefined || emps.length == 0) {
alert('当前节点设置的接收人范围为空,请联系管理员配置接收人范围.');
return;
}
//是否是单选? =0 是多选 =1 是单选.
var isSimplate = data.Selector[0].IsSimpleSelector;
var html = "<table border=0 width='98%' style='margin: auto;margin-top:5px'>";
if (isSimplate == "0") { //
html += "<tr><th>&nbsp;&nbsp;<label><input type='checkbox' name='selectAll' id='selectAll' onclick='selectAll()' value='全选' /><b>&nbsp;全选</b></label></th></tr>";
}
if (depts == null) {
$.each(emps, function (i, emp) {
html += "<tr><td>";
//检查该人员是否被选择.
var isSele = false;
$.each(selected, function (idx, sele) {
if (sele.No == emp.No)
isSele = true;
});
//多选.
if (isSimplate == "0") {
if (isSele == true)
html += "&nbsp;&nbsp;<label id='lab" + emp.No + "' ><input type='checkbox' checked=true id='" + emp.No + "' value='" + emp.Name + "' /> &nbsp;<font color=green>" + emp.Name + "</font></label>";
else
html += "&nbsp;&nbsp;<label id='lab" + emp.No + "' ><input type='checkbox' id='" + emp.No + "' value='" + emp.Name + "' />&nbsp;" + emp.Name + "</label>";
}
//单选.
if (isSimplate == "1") {
if (isSele == true)
html += "&nbsp;&nbsp;<label id='lab" + emp.No + "'><input name='emps' type='radio' checked=true id='" + emp.No + "' value='" + emp.Name + "' /> &nbsp;<font color=green>" + emp.Name + "</font></label>";
else
html += "&nbsp;&nbsp;<label id='lab" + emp.No + "' ><input name='emps' type='radio' id='" + emp.No + "' value='" + emp.Name + "' />&nbsp;" + emp.Name + "</label>";
}
});
html += " </td></tr>";
}
if (depts != null) {
$.each(depts, function (i, dept) {
html += "<tr><td class='TRSum' ><b> " + dept.Name + "</b></td></tr>";
html += "<tr><td>";
$.each(emps, function (i, emp) {
if (emp.FK_Dept == dept.No) {
//检查该人员是否被选择.
var isSele = false;
$.each(selected, function (idx, sele) {
if (sele.No == emp.No)
isSele = true;
});
//多选.
if (isSimplate == "0") {
if (isSele == true)
html += "&nbsp;&nbsp;<label id='lab" + emp.No + "' ><input type='checkbox' checked=true id='" + emp.No + "' value='" + emp.Name + "' /> <font color=green>" + emp.Name + "</font></label>";
else
html += "&nbsp;&nbsp;<label id='lab" + emp.No + "' ><input type='checkbox' id='" + emp.No + "' value='" + emp.Name + "' />" + emp.Name + "</label>";
}
//单选.
if (isSimplate == "1") {
if (isSele == true)
html += "&nbsp;&nbsp;<label id='lab" + emp.No + "'><input name='emps' type='radio' checked=true id='" + emp.No + "' value='" + emp.Name + "' /> <font color=green>" + emp.Name + "</font></label>";
else
html += "&nbsp;&nbsp;<label id='lab" + emp.No + "' ><input name='emps' type='radio' id='" + emp.No + "' value='" + emp.Name + "' />" + emp.Name + "</label>";
}
}
});
html += " </td></tr>";
});
}
html += "</table>";
$("#table").append(html);
//只有一个人的时候.
if (emps.length == 1) {
//获得人员编号.
var no = emps[0].No;
//让其选择.
$("#" + no).attr("checked", "checked");
//执行发送.
if (IsSend == 1)
SendNode();
}
});
//保存接受人的方法.
function SaveNodeEmps() {
//生成选择的人员.
var checked = $('input:checked');
var selectedEmps = [];
var selectedEmpLab = [];
for (var i = 0; i < checked.length; i++) {
if (checked[i].id == "selectAll") {
continue;
}
selectedEmps.push(checked[i].id);
selectedEmpLab.push(checked[i].value);
}
selectedEmps = selectedEmps.join(',');
selectedEmpLab = selectedEmpLab.join(',');
if (selectedEmps == '' || selectedEmps == null) {
alert('请选择人员.');
return;
}
var handler = new HttpHandler("BP.WF.HttpHandler.WF_WorkOpt");
handler.AddUrlData(); //WorkID,FK_Flow,FK_Node,ToNode 参数.
handler.AddPara("SelectEmps", selectedEmps); //多个人员用逗号分开: 比如 zhangsan,lisi
var data = handler.DoMethodReturnString("Accepter_Save"); //执行保存
var pageFrom = GetQueryString("PageFrom");
if (pageFrom != null && pageFrom != undefined && pageFrom == "WorkCheckModel")
Close(false, selectedEmps);
else
Close(false, selectedEmpLab); //关闭窗口.
}
//复选框全选反选
function selectAll() {
var obj = $("#selectAll");
if (obj != null && obj != undefined && obj.prop("checked")) {
$("input:checkbox").each(function () {
$(this).prop("checked", true);
});
} else {
$("input:checkbox").each(function () {
$(this).prop("checked", false);
});
}
};
function DelayedSend() {
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;
}
//生成选择的人员.
var checked = $('input:checked');
var selectedEmps = [];
for (var i = 0; i < checked.length; i++) {
if (checked[i].id == "selectAll") {
continue;
}
selectedEmps.push(checked[i].id);
}
selectedEmps = selectedEmps.join(';');
if (selectedEmps == '' || selectedEmps == null) {
layer.alert('请选择人员.');
return;
}
handler.AddPara("TB_Day", day);
handler.AddPara("TB_Hour", hour);
handler.AddPara("DDL_Minute", minute);
handler.AddPara("ToNodeID", GetQueryString("ToNode"));
handler.AddPara("ToEmps",selectedEmps)
var data = handler.DoMethodReturnString("DelayedSend");
if (data.indexOf("err@") != -1) {
layer.alert(data);
return;
}
Close(true);
}
//确定【选择接收人并发送】 / 保存. Accepter_Save Accepter_Send
function SendNode() {
//生成选择的人员.
var checked = $('input:checked');
var selectedEmps = [];
for (var i = 0; i < checked.length; i++) {
if (checked[i].id == "selectAll") {
continue;
}
selectedEmps.push(checked[i].id);
}
selectedEmps = selectedEmps.join(';');
if (selectedEmps == '' || selectedEmps == null) {
layer.alert('请选择人员.');
return;
}
if (pageFrom != null && pageFrom != undefined && pageFrom == "WorkCheckModel") {
window.parent.returnWorkWindowClose(selectedEmps);
return;
}
$("#Msg").html("<font color=green><center>正在发送请稍候...</center></font>");
var handler = new HttpHandler("BP.WF.HttpHandler.WF_WorkOpt");
handler.AddUrlData(); //FK_Flow,WorkID,FK_Node,ToNode 参数.
//多个参数用逗号分开的比如: zhangsan;lisi;wangwu
handler.AddPara("SelectEmps", encodeURI(selectedEmps));
var data = handler.DoMethodReturnString("Accepter_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");
}
data = data.replace("'MyFlowInfo", "'../MyFlowInfo");
data = data.replace("'MyFlow.htm", "'../MyFlow.htm");
data = data.replace("'MyFlow.htm", "'../MyFlow.htm");
data = data.replace("'WFRpt", "'../WFRpt");
data = data.replace("'WFRpt", "'../WFRpt");
data = data.replace("'./Img", "'../Img");
data = data.replace("'./Img", "'../Img");
data = data.replace("'./Img", "'../Img");
data = data.replace("'./Img", "'../Img");
data = data.replace("'./Img", "'../Img");
if (data.indexOf("UnSend.htm") == -1) {
data = data.replace("'./WorkOpt/", "");
data = data.replace("'./WorkOpt/", "");
data = data.replace("'./WorkOpt/", "");
}
data = data.replace('@', '<br/>@');
data = data.replace(/@/g, '<br/>&nbsp;@');
data = data.replace('<br/><br/>&nbsp;', '');
//console.log(data);
if ("Accepter_Save" == doType) {
if (isFrameCross == 0) {
if (window.parent != null && window.parent.returnWorkWindowClose != null) {
window.parent.returnWorkWindowClose(data);
} else if (window.opener != undefined && window.opener.returnWorkWindowClose != undefined) {
window.opener.returnWorkWindowClose(data);
} else if (window.parent != undefined && window.parent.AccepterHtmlSave != undefined) {
//表单树使用
window.parent.AccepterHtmlSave(data);
} else {
$('body').append($('<div>' + data + '</div>'));
$('#btnSave').attr('disabled', true);
}
} else {
ChildrenPostMessage(data, "returnWorkWindowClose");
}
try {
window.opener.document.getElementById("acc_link_" + ToNode).innerHTML = "选择接受人员" + "<span style='color:black;'>(" + getSaveName + ")</span>";
} catch (e) {
//window.parent.document.getElementById("acc_link_" + ToNode).innerHTML = "选择接受人员" + "<span style='color:black;'>(" + getSaveName + ")</span>";
}
//alert('保存成功...');
window.close();
return;
}
if (isFrameCross == 0) {
if (window.parent != null && window.parent.returnWorkWindowClose != null) {
window.parent.returnWorkWindowClose(data);
} else if (window.opener != undefined && window.opener.returnWorkWindowClose != undefined) {
window.opener.returnWorkWindowClose(data);
} else {
$('body').append($('<div>' + data + '</div>'));
$('#btnSave').attr('disabled', true);
}
} else {
ChildrenPostMessage(data, "returnWorkWindowClose");
}
$(".foot").hide();
}
//取消【选择接收人并发送】
function Close(flag, selectEmps) {
if (selectEmps == null || selectEmps == undefined)
selectEmps = "取消"
if (isFrameCross == 0) {
if (window.parent != null && window.parent.returnWorkWindowClose != null) {
window.parent.returnWorkWindowClose(selectEmps);
if (flag == true)
window.parent.close();
else
window.close();
} else if (window.opener != undefined && window.opener.returnWorkWindowClose != undefined) {
window.opener.returnWorkWindowClose(selectEmps);
if (flag == true)
window.opener.close();
else
window.close();
} else {
window.close();
}
} else {
ChildrenPostMessage(selectEmps, "returnWorkWindowClose");
if (flag == true)
window.parent.close();
else
window.close();
}
}
//初始化人员选择窗口
function initSelectEmpModal() {
var selectEmpModalHtml = '<div class="modal fade" id="selectEmpsModal" style="width: 80%;margin: 40px auto;">' +
'<div class="modal-dialog" style="margin: 0px;width:700px;">'
+ '<div class="modal-content" style="border-radius:0px;">'
+ '<div class="modal-header">'
+ '<button type="button" class="close" style="opacity:1;" data-dismiss="modal" aria-hidden="true">&times;</button>'
+ '<h4 class="modal-title">选择人员</h4>'
+ '</div>'
+ '<div class="modal-body">'
+ '<iframe style="width:100%;border:0px;height:400px;" id="iframeSelectEmpsForm" name="iframeSelectEmpsForm"></iframe>'
+ '</div>'
+ '</div><!-- /.modal-content -->'
+ '</div><!-- /.modal-dialog -->'
+ '</div>';
$('body').append($(selectEmpModalHtml));
$('#BtnSelectEmps').bind('click', function () {
var dept = getQueryStringByNameFromUrl("?" + $.cookie('CCS'), "FK_Dept");
if (dept == null || dept == '' || dept == undefined) {
dept = $.cookie('FK_Dept');
}
if (dept == null || dept == '' || dept == undefined) {
var u = new WebUser();
dept = u.FK_Dept;
}
$('#iframeSelectEmpsForm').attr('src', "SelectEmps.htm?FK_Dept=" + dept + "&FK_Node=" + GetQueryString("FK_Node") + "&s=" + Math.random() + "&IsSelectMore=1");
$('#selectEmpsModal').modal().show();
});
}
//设置选中的人员
function selectEmpsWindowClose(data) {
$('#selectEmpsModal').modal('hide');
if (data == '取消') {
return;
}
$('#ToEmp').val(frames["iframeSelectEmpsForm"].window.returnVal.Name);
}
</script>
<style type="text/css">
.TRSum {
font-size: 14px;
background-color: #FFFFFF;
border-bottom-style: double;
border-bottom-width: 2px;
border-bottom-color: #fafafa;
border-right-style: none;
border-left-style: none;
}
</style>
</head>
<body>
<div style="margin-bottom:45px;">
<div id="selected">
</div>
<div style="margin:10px;display:none" id="Div_DelayedSend">
<div class="form-unit">设置延期时间</div>
<div class="layui-form" style="margin-top:10px">
<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>
</div>
<div class="form-unit">选择接收人</div>
</div>
<div id="table"></div>
</div>
<div style="position: fixed;background:#f5f5f5; left:0; padding:8px; text-align:right; border-top:solid 1px #ccc; bottom: 0; right: 0;" class="foot">
<button onclick="SaveNodeEmps();"
id="Btn_Save" style="display:none" class="layui-btn layui-btn-normal">
<!--<img src="../Img/Btn/Confirm.png" />--> 保存
</button>
<button onclick="SendNode();" id="Btn_Send" class="layui-btn layui-btn-primary">
<!--<img src="../Img/Btn/Send.png" />--> 发送
</button>
<button onclick="DelayedSend();" id="Btn_DelayedSend" class="layui-btn layui-btn-primary" style="display:none">
<!--<img src="../Img/Btn/Send.png" />--> 延期发送
</button>
<button onclick="Close();" id="btnCancel" class="layui-btn layui-btn-primary">
<!--<img src="../Img/Btn/Close.png" />--> 关闭
</button>
</div>
<br />
<center>
<div id="Msg">
</div>
</center>
</body>
</html>