bpmDefinitionSubFlowImage.jsp 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/commons/include/html_doctype.html" %>
  3. <html>
  4. <head>
  5. <title>${bpmDefinition.subject}</title>
  6. <%@include file="/commons/include/form.jsp" %>
  7. <f:link href="jquery.qtip.css"></f:link>
  8. <f:link href="definition.node.css"></f:link>
  9. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/SignRuleWindow.js" ></script>
  10. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/FlowRuleWindow.js" ></script>
  11. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/FlowVarWindow.js" ></script>
  12. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/ForkConditionWindow.js" ></script>
  13. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/FlowEventWindow.js" ></script>
  14. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/FlowForkJoinWindow.js" ></script>
  15. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/FlowMessageWindow.js" ></script>
  16. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/FlowReminderWindow.js" ></script>
  17. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/BpmNodeUserSetWindow.js" ></script>
  18. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/FlowApprovalItemWindow.js" ></script>
  19. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/ViewSubFlowWindow.js" ></script>
  20. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/FlowSetWindow.js" ></script>
  21. <script type="text/javascript" src="${ctx}/js/jquery/plugins/jquery.qtip.js" ></script>
  22. <script type="text/javascript">
  23. /*KILLDIALOG*/
  24. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  25. var defId ="${bpmDefinition.defId}";
  26. var actDefId ="${bpmDefinition.actDefId}";
  27. var deployId= "${bpmDefinition.actDeployId}";
  28. var menu;
  29. //判断参数是否加载
  30. var isOtherParamFrm=false;
  31. var currentObj=null;
  32. $(function (){
  33. $("div.flowNode").each(function(){
  34. $(this).bind({mouseenter:function(){
  35. currentObj=$(this);
  36. }});
  37. currentObj=$(this);
  38. var type=currentObj.attr("type"),title=currentObj.attr("title");
  39. var items= getItems(type);
  40. if(!items)return;
  41. if(items.length==0)return;
  42. var item,html=['<div class="edui-menu-body">'];
  43. while(item=items.pop()){
  44. if(item.id=='-'){
  45. html.push('<div class="edui-menuitem edui-menuseparator"><div class="edui-menuseparator-inner"></div></div>');
  46. }
  47. else{
  48. html.push('<div class="edui-menuitem edui-for-'+item.id+'" onmouseover="$(this).addClass(\'edui-state-hover\')" onmouseout="$(this).removeClass(\'edui-state-hover\')" onclick="clickHandler(this.id)" id="'+item.id+'"><div class="edui-box edui-icon"></div><div class="edui-box edui-label edui-menuitem-label">'+item.text+'</div></div>');
  49. }
  50. }
  51. html.push('</div>');
  52. $(this).qtip({
  53. content:{
  54. text:html.join(''),
  55. title:{
  56. text:title
  57. }
  58. },
  59. position: {
  60. at:'center',
  61. target:'event',
  62. adjust: {
  63. x:-15,
  64. y:-15
  65. },
  66. viewport: $(window)
  67. },
  68. show:{
  69. effect: function(offset) {
  70. $(this).slideDown(200);
  71. }
  72. },
  73. hide: {
  74. event:'mouseleave',
  75. fixed:true
  76. },
  77. style: {
  78. classes:'ui-tooltip-light ui-tooltip-shadow'
  79. }
  80. });
  81. });
  82. });
  83. function getItems(type) {
  84. var items=[];
  85. /* switch(type){
  86. case "startEvent":
  87. items= [{id:'flowEvent', text: '事件设置'}];
  88. break;
  89. case "subStartEvent":
  90. items= [ {id:'flowEvent', text: '事件设置'}];
  91. break;
  92. case "endEvent":
  93. items= [{id:'flowEvent', text: '事件设置' }];
  94. break;
  95. case "parallelGateway":
  96. items= [];
  97. break;
  98. case "inclusiveGateway":
  99. case "exclusiveGateway":
  100. items= [{id:'flowCodition', text: '设置分支条件' }];
  101. break;
  102. case "multiUserTask":
  103. items= [{id:'flowRule', text: '跳转规则设置' },
  104. {id:'flowVote', text: '会签投票规则设置' },
  105. {id:'-'},
  106. {id:'flowEvent', text: '事件设置' },
  107. {id:'flowApproval', text: '常用语设置' } ];
  108. break;
  109. case "userTask":
  110. items= [{id:'flowRule', text: '跳转规则设置' },
  111. {id:'flowEvent', text: '事件设置' },
  112. {id:'-'},
  113. {id:'flowDue', text: '流程催办设置' },
  114. {id:'flowForkJoin', text: '流程分发汇总' },
  115. {id:'-'},
  116. {id:'flowApproval', text: '常用语设置' },
  117. {id:'userSet', text: '人员设置' } ];
  118. break;
  119. case "email":
  120. items= [{id:'flowMessage', text: '消息参数' }];
  121. break;
  122. case "script":
  123. items= [{id:'flowEvent', text: '设置脚本' }];
  124. break;
  125. case "callActivity":
  126. items= [{id: 'viewSubFlow',text: '查看调用子过程示意图'},
  127. {id: 'flowSet', text: '设置子流程'}];
  128. }
  129. */
  130. return items;
  131. }
  132. var signRule;
  133. var flowRule;
  134. var forkCondition;
  135. function clickHandler(itemId){
  136. //节点类型
  137. var type=currentObj.attr("type");
  138. //任务id
  139. var activitiId=currentObj.attr("id");
  140. var activityName=currentObj.attr("title");
  141. if(itemId=="flowVote" && type=="multiUserTask"){
  142. SignRuleWindow({actDefId:actDefId,activitiId:activitiId});
  143. }
  144. else if(itemId=="flowRule"){
  145. FlowRuleWindow({deployId:deployId,actDefId:actDefId,nodeId:activitiId,nodeName:activityName});
  146. }
  147. else if(itemId=="flowCodition"){
  148. ForkConditionWindow({defId:defId,deployId:deployId,nodeId:activitiId});
  149. }
  150. else if(itemId=="flowMessage"){
  151. FlowMessageWindow({actDefId:actDefId,nodeId:activitiId});
  152. }
  153. else if(itemId=="flowEvent"){
  154. //开始事件 后置脚本 type startEvent
  155. //结束事件 前置脚本 endEvent
  156. //用户任务 多实例任务 前后 userTask multiUserTask
  157. //脚本节点 脚本节点 script
  158. FlowEventWindow({type:type,actDefId:actDefId,activitiId:activitiId,defId:defId});
  159. }
  160. else if(itemId=="userSet"){
  161. UserSetWindow({defId:defId,nodeId:activitiId});
  162. }
  163. else if(itemId=="flowDue"){
  164. FlowReminderWindow({actDefId:actDefId,nodeId:activitiId});
  165. }else if(itemId=="flowForkJoin"){
  166. var win=FlowForkJoinWindow({actDefId:actDefId,nodeId:activitiId,activityName:activityName});
  167. win.show();
  168. }else if(itemId=="flowApproval"){ // 常用语设置
  169. FlowApprovalItemWindow({activitiId:activitiId,defId:defId,actDefId:actDefId});
  170. }else if(itemId=="viewSubFlow"){
  171. ViewSubFlowWindow({nodeId:activitiId,defId:defId,actDefId:actDefId});
  172. }else if(itemId=="flowSet"){
  173. FlowSetWindow({nodeId:activitiId,defId:defId,actDefId:actDefId});
  174. }
  175. }
  176. </script>
  177. <style type="text/css">
  178. body{ padding:0px; margin:0;overflow:auto;}
  179. div.flowNode{cursor:pointer;}
  180. </style>
  181. </head>
  182. <body>
  183. <br/>
  184. <div class="panel">
  185. <div style="position: relative;background:url('${ctx}/bpmImage?deployId=${bpmDefinition.actDeployId}&randId=<%=Math.random()%>') no-repeat;width:${shapeMeta.width}px;height:${shapeMeta.height+100}px;">
  186. ${shapeMeta.xml}
  187. </div>
  188. </div>
  189. </body>
  190. </html>