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

288 lines
8.0 KiB

<script type="text/javascript">
var todoid = $.getURLParam('_todoid');//待办任务的ID
var piid = $.getURLParam('_piid');//piid
$(function(){
var _data ={
_SRVNAME : 'service.wdk.wftodo',
_SRVMETHOD: 'getTodoDealInfo',
_DATA: $.json2str({
piid: ''
,todoid: todoid
}),
};
var url = "wdk?action=wdk.pub&method=call_service";
$.cuajax({
url:url+"&ajaxparam="+new Date().getTime(),
method:"post",
timeout:WDK_Timeout,
data:_data,
success:function(result) {
var jres = $.str2json(result);
if(jres && jres.code=='1'){
var info = jres.result;
$('#wf_nodetitle').text(info.nodetitle);
$('#wf_nodename').val(info.nodename);
$('#wf_title').text(info.title);
piid = info.piid;
var nextnodes = info.nextnodes;
var htmlstr = [];
var nextnodemap = {};
if(nextnodes && nextnodes.length>0){
for(var i=0;i<nextnodes.length;i++){
nextnodemap[nextnodes[i].nodename] = nextnodes[i];
htmlstr.push("<input type='radio' name='wf_nextnode' id='"+nextnodes[i].nodename+"' value='"+nextnodes[i].nodename+"' nodetype='"+nextnodes[i].nodetype+"'><label for='"+nextnodes[i].nodename+"'>"+nextnodes[i].nodetitle+"</label>");
}
$('#wf_actors').parent().parent().parent().css("display","");
$('#wf_nextnodes').parent().parent().parent().css("display","");
}else{
//如果无下一环节的话,隐藏
$('#wf_actors').parent().parent().parent().css("display","none");
$('#wf_nextnodes').parent().parent().parent().css("display","none");
}
$('#wf_nextnodes').empty();
$('#wf_nextnodes').append(htmlstr.join(''));
$('#wf_nextnodes').data('nextnodes',nextnodemap);//信息添加到节点上
if(info.defaultnode){
$('#'+info.defaultnode).click();
}
}
},
error:function(result){
alert('网络错误!result='+result);
$.wait_close();
}
});
//绑定单击事件
$("#wf_nextnodes").on("click","input[type='radio']", function() {
//do something here
var nodename = $(this).val();
var nodetype = $(this).attr('nodetype');
var checkbox = false;
$('#wf_actors').parent().parent().parent().css("display","");
if(nodetype == 'frok'){
//暂时可这样判断
checkbox = true;
}else if(nodetype == 'end' ){
$('#wf_actors').parent().parent().parent().css("display","none");
return;
}else if(nodetype == 'sign'){
//多人会签时,需要可以多选
checkbox = true;
}
var _data ={
_SRVNAME : 'service.wf.frame',
_SRVMETHOD: 'getParticipantByNodename',
_RSTYPE:'tree',
_RSFIELD:'result',
_RSPARAM:$.json2str({
asyn:0
,idField:'id'
,textField:'text'
,parentField:'parentid'
,iconField:''
,attrs:'type,node'
}),
_DATA: $.json2str({
su:$.getSessionUser()
,piid: piid
,nodename: nodename
,todoid:todoid
}),
};
$.tree({
id:'wf_actors'
,url:'wdk?action=wdk.pub&method=call_service'
,queryParams:_data
,checkbox:checkbox
});
});
});
//获取树上选中的节点
function getSelectedPersons(){
var ZTreeObj = $.fn.zTree.getZTreeObj('wf_actors');
if(!ZTreeObj){
return;
}
var isCheckBox = ZTreeObj.setting.check.enable;
var targetactorsmap = {};
//var targetactors = [];
var selectedNodes = isCheckBox==true?$.tree_getCheckedNode({id:'wf_actors'}):$.tree_getSelectedNode({id:'wf_actors'});
if(!selectedNodes || selectedNodes.length==0){
return;
}
$.each(selectedNodes, function(key, val) {
var attributes = selectedNodes[key].attributes;
var node = attributes.node;
var type = attributes.type;
if('user'== type){
//节点必须是人
var personid = '';
var deptuuid = '';
var nodename = '';
//正常任务的场景
personid = selectedNodes[key].id;
deptuuid = selectedNodes[key].getParentNode().id;
if('-1' != node){
nodename = node;
//分支\聚合的场景
personid = personid.replace(node+'_','');
deptuuid = deptuuid.replace(node+'_','');
}else{
nodename = $("input[name='wf_nextnode']:checked").val();
}
var oldtargetactors = targetactorsmap[nodename];
if(!oldtargetactors){
oldtargetactors = [];
}
oldtargetactors.push(personid+',user,'+deptuuid);
targetactorsmap[nodename] = oldtargetactors;
}
});
return targetactorsmap;
}
function _WF_GET_SUBMIT_BEAN(unitId,personId,deptId){
var result = {};
var nodetype = $("input[name='wf_nextnode']:checked").attr('nodetype');
var targetactormap = {}
var ZTreeObj = $.fn.zTree.getZTreeObj('wf_actors');
if(ZTreeObj){
targetactormap = getSelectedPersons();
if(!targetactormap || targetactormap.length==0){
result.code = '0';
result.desc = '请选择下一环节的办理人!';
return result;
}
}
var targetactors = [];
var nodename = $("input[name='wf_nextnode']:checked").val();
var extra = [];
for(var key in targetactormap){
if(key == nodename){
targetactors = targetactormap[key];
}else{
var forkPath = {};
forkPath.target = key;
//var treeObj =$.fn.zTree.getZTreeObj('wf_actors');
var rootPath = $.tree_getNodeById('wf_actors',key);
var attributes = rootPath.attributes;
forkPath.signtype = '';
forkPath.targettype = attributes.type;
forkPath.targetactors = targetactormap[key].join(';')
extra.push(forkPath);
}
}
if(1==1){
console.log(targetactors);
console.log(extra);
}
var nextnodemap = $('#wf_nextnodes').data('nextnodes');
var selectedNode = nextnodemap[nodename];
var bean_submit = {
target:nodename ? nodename:''
,targettype:nodetype ? nodetype:''
,title:$('#wf_title').text()
,unitid:unitId
,deptuuid:deptId
,actortype:'user'
,actorid:personId
,opertype:'submit'//送达
,opercomment:$('#wf_opinion').val()
// ,operdt:'2017-06-26'
,targetactors:targetactors.join(';')
,todoid:todoid
,extratargets:extra
};
//有祖先环节的情况下,代表当前环节为跳跃环节,需要修改参数
if(selectedNode && selectedNode.ancestor && selectedNode.ancestor.nodename){
bean_submit.target = selectedNode.ancestor.nodename;
bean_submit.targettype = selectedNode.ancestor.nodetype;
bean_submit.targetactors = '';
var extraNew = [];
var targetNew = {target:nodename,signtype:'',targettype:nodetype,targetactors:targetactors.join(';')};
extraNew.push(targetNew);
bean_submit.extratargets = extraNew;
}
result.code = '1';
result.submit_bean = bean_submit;
return result;
}
</script>
</head>
<style type="text/css">
#wf_actors{
height: 150px;
overflow-y: auto;
overflow-x: hidden;
}
.row .value-display{
padding-left: 10px;
}
#wf_nextnodes input{
vertical-align: middle;
margin-top: -2px;
margin-bottom: 1px;
}
.edit-container{
padding: 2px 30px 20px 30px;
}
</style>
<br/>
<div class="edit-container">
<input type="hidden" name="wf_nodename"/>
<div class="row">
<div class="formgroup col-12">
<label>待办标题</label>
<div class="value-display">
<span id="wf_title">未知</span>
</div>
</div>
</div>
<div class="row">
<div class="formgroup col-12">
<label>当前环节</label>
<div class="value-display">
<span id="wf_nodetitle">未知</span>
</div>
</div>
</div>
<div class="row">
<div class="formgroup col-12">
<label>下一办理环节</label>
<div class="value-display">
<div id="wf_nextnodes" style="width:100%;word-wrap: break-word; word-break: break-all;white-space: pre-wrap;">未知</div>
</div>
</div>
</div>
<div class="row">
<div class="formgroup col-12">
<label>下一环节办理人</label>
<div class="value-display">
<div id="wf_actors"></div>
</div>
</div>
</div>
<div class="row" style="height:120px;">
<div class="formgroup col-12">
<label>办理意见</label>
<div>
<textarea id="wf_opinion" rows="7" style="width:100%;"></textarea>
</div>
</div>
</div>
</div>