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.

406 lines
15 KiB
Plaintext

11 months ago
<!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/bootstrap/css/bootstrap.css" rel="stylesheet" />
<link href="../Scripts/bootstrap/css/components-rounded.css" rel="stylesheet" />
<link href="../Scripts/bootstrap/css/font-awesome.css" rel="stylesheet" />
<link href="../Scripts/bootstrap/css/themes/default/style.min.css" rel="stylesheet" />
<link href="../Scripts/bootstrap/bootstrap-treeview/src/css/bootstrap-treeview.css" rel="stylesheet" />
<script type="text/javascript" src="../Scripts/bootstrap/js/jquery.min.js"></script>
<script type="text/javascript" src="../Scripts/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../Scripts/bootstrap/bootstrap-treeview/src/js/bootstrap-treeview.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;
}
input[type=text], select {
border-radius: 15px !important;
border: #2884fa 1px solid !important;
margin: 8px 0px !important;
line-height: 25px;
padding-left: 6px;
}
#txbSearchVal {
font-size: 14px;
}
.form_tree {
background: #f4f9ff;
}
.form_tree #orgTxt {
border-radius: 15px 0px 0px 15px !important;
margin: 0px !important;
}
.form_tree .input-group-addon {
border-radius: 0px 15px 15px 0px !important;
}
#groupTable #dt ul {
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");
var isSimplate = false;
var IsSend = GetQueryString("IsSend"); //是否发送该参数是ToNodes.htm 带回来的.
$(function () {
if (IsSend == null || IsSend == undefined || IsSend == "")
IsSend = "1";
if (IsSend == "0")
$("#Btn_Send").hide();
var handler = new HttpHandler("BP.WF.HttpHandler.WF_WorkOpt");
handler.AddUrlData(); //这里是获得Url的参数.
var data = handler.DoMethodReturnString("AccepterOfDept_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;
}
try {
data = JSON.parse(data);
}
catch (err) {
alert("转换JSON 失败" + err + data);
return;
}
//获得三个数据源.
var depts = data.Depts; //部门集合. 这个集合也可能为空,如果为空就不要分组.
var selected = data.Selected; //已经选择的人员集合.
//是否是单选? =0 是多选 =1 是单选.
isSimplate = data.Selector[0].IsSimpleSelector ==0?true:false;
var jsonTree = createJsonToTree(depts, depts[0].ParentNo,selected);
$('#tree').treeview({
data: jsonTree, // 数据源
showCheckbox: isSimplate, //是否显示复选框
highlightSelected: !isSimplate, //是否高亮选中
nodeIcon: 'glyphicon',
emptyIcon: '', //没有子节点的节点图标
multiSelect: false,
onNodeSelected: function (event, node) {
var tree = $('#tree');
if (node.state.expanded) {
//处于展开状态则折叠
tree.treeview('collapseNode', node.nodeId);
} else {
//展开
tree.treeview('expandNode', node.nodeId);
}
}
});
});
//树形结构转换
var treeJson = [];
function createJsonToTree(jsonArray, parentNo,selectedNodes) {
for (var i = 0; i < jsonArray.length; i++) {
var data = jsonArray[i];
if (data.ParentNo == parentNo) {
var checked = false;
var sel = $.grep(selectedNodes, function (obj) {
return data.No == obj.No;
});
if (sel.length > 0) {
checked = true;
}
treeJson.push({
"id": data.No,
"text": data.Name,
"nodes": creatTreeChildern(jsonArray, data.No,selectedNodes),
"state": { checked: checked, disabled: false }
});
}
}
function _(treeArray) {
$.each(treeArray, function (i, o) {
if ($.isArray(o.nodes)) {
if (o.nodes.length == 0) {
o.nodes = undefined;
} else {
_(o.nodes);
}
}
});
}
_(treeJson);
return treeJson;
}
function creatTreeChildern(jsonArray, parentNo,selectedNodes) {
var childList = []
for (var i = 0; i < jsonArray.length; i++) {
var data = jsonArray[i];
if (data.ParentNo == parentNo) {
var checked = false;
var sel = $.grep(selectedNodes, function (obj) {
return data.No == obj.No;
});
if (sel.length > 0) {
checked = true;
}
childList.push({
"id": data.No,
"text": data.Name,
"nodes": creatTreeChildern(jsonArray, data.No),
"state": { checked: checked, disabled: false }
});
}
}
return childList;
}
//复选框全选反选
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);
});
}
};
//确定【选择接收人并发送】 / 保存. Accepter_Save Accepter_Send
function SendNode() {
//生成选择的人员.
var nodes = $('#tree').treeview('getChecked');
if(isSimplate == false)
nodes = $('#tree').treeview('getSelected');
var selectedDepts = [];
for (var i = 0; i < nodes.length; i++) {
selectedDepts.push(nodes[i].id);
}
selectedDepts = selectedDepts.join(';');
if (selectedDepts == '' || selectedDepts == null) {
alert('请选择部门.');
return;
}
$("#Msg").html("<font color=green><center>正在发送请稍候...</center></font>");
var handler = new HttpHandler("BP.WF.HttpHandler.WF_WorkOpt");
handler.AddUrlData();
handler.AddPara("SelectDepts", encodeURI(selectedDepts));
var data = handler.DoMethodReturnString("AccepterOfDept_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.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();
}
}
</script>
</head>
<body>
<div style="margin-bottom:45px;">
<div id="selected">
</div>
<div id="tree">
</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="SendNode();" id="Btn_Send" class="layui-btn layui-btn-primary">
<!--<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>