<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; BaseSessionUser su = (BaseSessionUser)session.getAttribute(WDKConstant.SESSION_USER); String WDK_ROOT = WDKCore.inst.WDK_ROOT; %> <!DOCTYPE html> <%@page import="org.wdk.WDKConstant"%> <%@page import="org.wdk.WDKCore"%> <%@page import="org.wdk.core.base.BaseSessionUser"%> <html> <head> <base href="<%=basePath%>" target="_self"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>流程发起</title> <jsp:include page='<%=WDKCore.inst.WDK_COMMON %>'></jsp:include> <script type="text/javascript" src="<%=WDK_ROOT%>/core/js/wdk.js"></script> <script type="text/javascript"> var _pdid = $.getURLParam('pdid'); var isTreeLoadSuccess = false; window.onload = function(){ $.wait_open(); var _data = {pdid:_pdid}; $.cuajax({ url:'wdk?action=wdk.wf&method=pi_new_init&ajaxparam='+new Date().getTime(), method:"post", timeout:WDK_Timeout, data:_data, success:function(result) { var jparam = $.str2json(result); if('1'==jparam.code){ init(jparam); }else{ alert(jparam.desc); } $.wait_close(); }, error:function(result){ $.wait_close(); alert('网络错误!result='+result); } }); }; //普通任务节点初始化 function init(jparam){ //1、初始化工作日历 $.combobox({ id:'start_calendar' ,url:'wdk?action=wdk.wf&method=calendar_load&ajaxparam='+new Date().getTime() ,initvalue:jparam.calendar ,isinitselect:true }); //2、初始化办理期限 $('#start_deadline').val(jparam.deadline); //3、超限后处理方式 $("input[name=start_deadprocess]:eq("+jparam.deadprocess+")").attr("checked",'checked'); //4、黄牌预警时间 $('#start_warnyellow').val(jparam.warnyellow); //5、红牌预警时间 $('#start_warnred').val(jparam.warnred); //6、是否周期性预警 $("input[name=start_isperiod]:eq("+jparam.isperiod+")").attr("checked",'checked'); if('1'==jparam.isperiod){ $('#start_warnamount').val(jparam.warnamount); $('#start_warnperiod').val(jparam.warnperiod); $('#item_start_warnamount').css('display','block'); $('#item_start_warnperiod').css('display','block'); }else{ $('#start_warnamount').val('2'); $('#start_warnperiod').val('1'); $('#item_start_warnamount').css('display','none'); $('#item_start_warnperiod').css('display','none'); } //7、开始环节 $('#start_startnode').val(jparam.nodename); $('#start_startnode').attr('disabled','disabled'); $('#_nodetype').val(jparam.nodetype); //7-2、开始环节类型 var _nodetype = jparam.nodetype; var _nodetypename = ""; if('task'==_nodetype){ _nodetypename = "人工任务"; }else if('sign'==_nodetype){ _nodetypename = "会签任务"; }else if('custom'==_nodetype){ _nodetypename = '自动任务'; }else if('subprocess'==_nodetype){ _nodetypename = '子流程'; }else if('decision'==_nodetype){ _nodetypename = '自动判断'; }else if('frok'==_nodetype){ _nodetypename = '聚合'; } $('#start_startnodetype').val(_nodetypename); $('#start_startnodetype').attr('disabled','disabled'); //8、开始参与者 if('sign'==_nodetype){ $('#item_start_tasksort').css('display','block'); }else{ $('#item_start_tasksort').css('display','block'); } if('task'==_nodetype||'sign'==_nodetype){ $('#item_start_startactors_label').css('display','block'); $('#item_start_startactors').css('display','block'); var _queryParams = { pdid:_pdid ,nodename:jparam.nodename }; $.tree({ id:'start_startactorlist', checkbox:true, url:"wdk?action=wdk.wf&method=node_actors",//wf_pd_newinst_startactorlist", queryParams:_queryParams, onLoadSuccess:function(node,data){ }, onCheck:function(node,checked){ actorlistUpdate(node,checked); } }); }else{ $('#item_start_startactors_label').css('display','none'); $('#item_start_startactors').css('display','none'); } return true; } //是否按序增加办理人 function start_tasksort_click(str){ if('0'==str){ $('#start_startactors').css('display','none'); $('#_hsplit').css('height','110px'); }else{ $('#start_startactors').css('display','block'); $('#_hsplit').css('height','10px'); } } //动态修改下一环节办理人 function actorlistUpdate(node,checked){ var _isSort = $('#start_startactors').val(); if('0'==_isSort){ return; } var nodes = []; if(-1!=node.id.indexOf('dept_')){ //如果是点击的部门,则将该部门下的所有人员依次添加 var childs = $.tree_getChildNodes({id:'start_startactorlist',node:node}); for(var i=0;i<childs.length;i++){ var child = childs[i]; nodes.push(child); } }else{ nodes.push(node); } var listobj = document.getElementById("start_startactors"); if(checked){ //1、如果是增加 for(var i=0;i<nodes.length;i++){ var _n = nodes[i]; var actorid = _n.id; var actorname = _n.text; var hasSame = false; //1.1、如果有相同的ID则不处理 var options = listobj.options; for(var i=0;i<options.length;i++){ var opt = options[i]; if(opt.value == actorid){ hasSame = true; break; } } //1.2、如果是不同的ID则添加 if(!hasSame){ var option = new Option(actorname,actorid); if(listobj){ listobj.options.add(option); } } } }else{ for(var i=0;i<nodes.length;i++){ var _n = nodes[i]; var actorid = _n.id; var actorname = _n.text; //2、如果是删除 var options = listobj.options; for(var j=0;j<options.length;j++){ var opt = options[j]; if(opt.value == actorid){ listobj.remove(j); j = j - 1;//注意这一行 } } } } } //周期性预警 function start_isperiod_click(str){ if('1'==str){ $('#item_start_warnamount').css('display','block'); $('#item_start_warnperiod').css('display','block'); }else{ $('#start_warnamount').val('2'); $('#start_warnperiod').val('1'); $('#item_start_warnamount').css('display','none'); $('#item_start_warnperiod').css('display','none'); } } /* //是否抄送 function start_cc_onclick(str){ if('0'==str){ $('#item_start_ccactors').css('display','none'); }else{ $('#item_start_ccactors').css('display','block'); $.wait_open(); $.tree({ id:'start_ccactors', checkbox:true, url:"wdk?action=wdk.wf&method=wf_actorlist", queryParams:{}, onLoadSuccess:function(node,data){ $.wait_close(); } }); } } */ ///////////////////////////////////////////////// // // 任务提交及退回 // //////////////////////////////////////////////// //任务提交 function inputpop_getValue(){ $.wait_open(); var _nodename = $('#start_startnode').val(); //节点名称 var _nodetype = $('#_nodetype').val(); //节点类型 var _comment = $('#start_comment').val(); //意见 var _calendar = $.combobox_getValue({id:'start_calendar'}); //选用的工作日历 var _deadline = $('#start_deadline').val(); //总期限 var _deadprocess = $('input[name=start_deadprocess]:checked').val(); //超期处理方式 var _warnyellow = $('#start_warnyellow').val(); //黄牌警告 var _warnred = $('#start_warnred').val(); //红牌警告 var _isperiod = $('input[name=start_isperiod]:checked').val(); //是否周期性预警 var _warnamount = $('#start_warnamount').val(); //预警次数 var _warnperiod = $('#start_warnperiod').val(); //预警间隔 var _showallactors = $('input[name=start_showallactors]:checked').val(); //用户过滤 //根据是否是顺序会签来确定提交的参与者 var _tasksort = "0"; //是否按顺序 if('sign'==_nodetype){ _tasksort= $('input[name=start_tasksort]:checked').val(); } //a.取出所有树节点,构建所有人员ID var tree_allnodes = $.tree_getAllNode({id:'start_startactorlist'}); //b.取出需要设置的人员ID var _idarr = []; if('1'==_tasksort){ //如果是按顺序会签,则从右边顺序列表中读取 var listobj = document.getElementById("start_startactors"); var options = listobj.options; for(var i=0;i<options.length;i++){ var opt = options[i]; _idarr.push(opt.value); } }else{ //如果是同时会签,则直接读取树的勾选项 var _ids = []; //如果没有选择参与者,则默认所有候选者均参与 var _tree_checked = $.tree_getChecked({id:'start_startactorlist'}); if(null==_tree_checked){ var _allnodes = $.tree_getAllNode({id:'start_startactorlist'}); for(var i=0;i<_allnodes.length;i++){ var _n = _allnodes[i]; _ids.push(_n.id); } }else{ _ids = $.tree_getChecked({id:'start_startactorlist'}).id.split(','); } for(var i=0;i<_ids.length;i++){ var _id = _ids[i]; if(-1==_id.indexOf('dept_')){ _idarr.push(_ids[i]); } } } //c.将人员ID转换为真实的提交参数 var _actors = []; for(var i=0;i<_idarr.length;i++){ var _id = _idarr[i]; for(var j=0;j<tree_allnodes.length;j++){ var _node = tree_allnodes[j]; if(_node.id==_id){ _actors.push(_node.id+","+_node.attributes.actortype); break; } } } var _data ={ pdid:_pdid ,nodename:_nodename ,nodetype:_nodetype ,comment:_comment ,calendar:_calendar ,deadline:_deadline ,deadprocess:_deadprocess ,warnyellow:_warnyellow ,warnred:_warnred ,isperiod:_isperiod ,warnamount:_warnamount ,warnperiod:_warnperiod ,showallactors:_showallactors ,actorsinsort:_tasksort ,actors:_actors.join(';') // ,iscc:_iscc // ,ccactors:_ccactors }; $.cuajax({ url:'wdk?action=wdk.wf&method=pi_new&ajaxparam='+new Date().getTime(), method:"post", timeout:WDK_Timeout, data:_data, success:function(result) { $.wait_close(); var jparam = $.str2json(result); alert(jparam.desc); }, error:function(result){ $.wait_close(); alert('网络错误!result='+result); } }); } </script> </head> <body class="easyui-layout" style="padding:0px;margin:0px;background-color:#FFFFFF;"> <!-- 表格 --> <div id="layout_content" data-options="region:'center',border:false,collapsed:false" style="border:1px solid #ddd;" > <div id="item_start_comment" class="fitem" style="margin:10px;"> <label>办理意见:</label> <textarea id="start_comment" name="start_comment" class="txt" style="width:250px;height:100px;"></textarea> </div> <div id="item_start_calendar" class="fitem" style="margin:10px;"> <label>工作日历:</label> <input id="start_calendar" name="start_calendar" class="txt" style="width:250px"> </div> <div id="item_start_deadline" class="fitem" style="margin:10px;"> <label>办理期限:</label> <input id="start_deadline" name="start_deadline" class="txt" style="width:250px"> </div> <div id="item_start_deadprocess" class="fitem" style="margin:10px;"> <label>超期处理:</label> <input name="start_deadprocess" type="radio" value="0" checked>继续执行 <input name="start_deadprocess" type="radio" value="1" >关闭流程 </div> <div id="item_start_warnyellow" class="fitem" style="margin:10px;"> <label>黄牌预警:</label> <input id="start_warnyellow" name="start_warnyellow" class="txt" style="width:250px"> </div> <div id="item_start_warnred" class="fitem" style="margin:10px;"> <label>红牌预警:</label> <input id="start_warnred" name="start_warnred" class="txt" style="width:250px"> </div> <div id="item_start_isperiod" class="fitem" style="margin:10px;"> <label>周期预警:</label> <input name="start_isperiod" type="radio" value="0" onclick="start_isperiod_click('0')" checked>预警一次 <input name="start_isperiod" type="radio" value="1" onclick="start_isperiod_click('1')">周期预警 </div> <div id="item_start_warnamount" class="fitem" style="margin:10px;display:none;"> <label>预警次数:</label> <input id="start_warnamount" name="start_warnamount" class="txt" style="width:250px"> </div> <div id="item_start_warnperiod" class="fitem" style="margin:10px;display:none;"> <label>预警间隔:</label> <input id="start_warnperiod" name="start_warnperiod" class="txt" style="width:250px"> </div> <div id="item_start_showallactors" class="fitem" style="margin:10px;"> <label>用户过滤:</label> <input name="start_showallactors" type="radio" value="0" checked>显示经办 <input name="start_showallactors" type="radio" value="1" >显示所有 </div> <div id="item_start_startnode" class="fitem" style="margin:10px;"> <label>开始环节:</label> <input id="start_startnode" name="start_startnode" class="txt" style="width:250px"> <input type="hidden" id="_nodetype" name="_nodetype" class="txt" style="width:250px"> </div> <div id="item_start_startnodetype" class="fitem" style="margin:10px;"> <label>环节类型:</label> <input id="start_startnodetype" name="start_startnodetype" class="txt" style="width:250px"> </div> <div id="item_start_tasksort" class="fitem" style="margin:10px;display:none;"> <label>办理顺序:</label> <input name="start_tasksort" type="radio" value="0" onclick="start_tasksort_click('0')" checked>同时办理 <input name="start_tasksort" type="radio" value="1" onclick="start_tasksort_click('1')">顺序办理 </div> <div id="item_start_startactors_label" class="fitem" style="margin:10px;display:none;"> <label>开始办理:</label> </div> <div id="item_start_startactors" class="fitem" style="margin:10px;display:none;"> <div id="start_startactorlist" style="width:315px;height:100px;overflow:auto;float:left;border:1px solid #add;"></div> <div style="width:105px;height:100px;overflow:auto;float:left;border:0px solid #add;"></div> <select id="start_startactors" name="start_startactors" class="txt" multiple="multiple" style="width:250px;height:100px;display:none;"> </select> </div> <div id="_hsplit" class="fitem" style="margin:10px;height:110px;"> </div> <div id="item_start_cc" class="fitem" style="margin:10px;display:none;"> <label>是否抄送:</label> <input name="start_cc" type="radio" value="0" onclick="start_cc_onclick('0')" checked>否 <input name="start_cc" type="radio" value="1" onclick="start_cc_onclick('1')">是 </div> <div id="item_start_ccactors" class="fitem" style="margin:10px;display:none;"> <div id="start_ccactors" style="width:315px;height:100px;overflow:auto;border:1px solid #add;"></div> </div> </div> </body> </html>