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
288 lines
8.0 KiB
1 month ago
|
<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>
|
||
|
|
||
|
|