bpmDefinitionConditionEdit.jsp 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@page import="net.sf.json.JSONArray" %>
  3. <%@include file="/commons/include/html_doctype.html" %>
  4. <html>
  5. <head>
  6. <%@include file="/commons/include/form.jsp" %>
  7. <title><c:if test="${ not empty nodeName}">[${nodeName}]</c:if>节点人员设置</title>
  8. <f:link href="form.css" ></f:link>
  9. <link href="${ctx}/js/jquery/plugins/link-div-default.css" rel="stylesheet" type="text/css" />
  10. <script type="text/javascript" src="${ctx}/servlet/ValidJs?form=bpmNodeRule"></script>
  11. <script type="text/javascript" src="${ctx}/js/javacode/codemirror.js"></script>
  12. <script type="text/javascript" src="${ctx}/js/javacode/InitMirror.js"></script>
  13. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/SysDialog.js"></script>
  14. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/ScriptDialog.js" ></script>
  15. <script type="text/javascript" src="${ctx}/js/jquery/plugins/jquery.qtip.js" ></script>
  16. <script type="text/javascript" src="${ctx}/js/util/easyTemplate.js" ></script>
  17. <script type="text/javascript" src="${ctx}/js/hotent/platform/form/FormUtil.js"></script>
  18. <script type="text/javascript" src="${ctx}/js/hotent/platform/form/nodeUserSelectorJS.js" ></script>
  19. <script type="text/javascript" src="${ctx}/js/hotent/platform/form/SelectorInit.js"></script>
  20. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/BpmDefinitionConditionEdit.js"></script>
  21. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/BpmNodeRule.js"></script>
  22. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/ConditionScriptEditDialog.js"></script>
  23. <script type="text/javascript"src="${ctx}/js/hotent/platform/system/PersonScriptAddDialog.js"></script>
  24. <script type="text/javascript" src="${ctx}/js/jquery/plugins/jquery.linkdiv.js"></script>
  25. <script type="text/javascript">
  26. /*KILLDIALOG*/
  27. var dialog=null;
  28. try{
  29. dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  30. }catch(e){
  31. dialog=window;
  32. }
  33. var defId = ${defId};
  34. function addPersonScript(obj){
  35. var _this = $(obj);
  36. PersonScriptAddDialog({
  37. data:{
  38. defId:defId
  39. },
  40. callback:addScriptCallBack
  41. });
  42. };
  43. function addScriptCallBack(data){
  44. var script = data.script;
  45. var inst = script.classInsName;
  46. var method = script.methodName;
  47. var str = "return "+inst +"."+method+ "( ";
  48. var paramStr="";
  49. for(var i=0 ; i<script.argument.length; i++){
  50. var p=script.argument[i];
  51. switch(p.paraValType){
  52. case '1':
  53. paramStr += p.paraVal+" , " ;
  54. break;
  55. case '2':
  56. if(p.paraType.indexOf("String")>0){
  57. paramStr += "\"" + p.paraVal+ "\" , " ;
  58. }else{
  59. paramStr += p.paraVal+ " , " ;
  60. }
  61. break;
  62. }
  63. }
  64. if(paramStr){
  65. paramStr = paramStr.substring(0,paramStr.length-2);
  66. }
  67. str += paramStr+");" ;
  68. var target = $('#txtScriptData')[0];
  69. jQuery.insertText(target,str);
  70. };
  71. </script>
  72. <style type="text/css">
  73. a.ruledetail,a.delrule {
  74. cursor: pointer;
  75. }
  76. html{
  77. overflow-x: hidden;
  78. }
  79. #condition-table td{
  80. text-align:left;
  81. }
  82. .table-grid textarea {
  83. float: left;
  84. height: 30px;
  85. }
  86. </style>
  87. <body>
  88. <div class="panel">
  89. <div class="hide-panel">
  90. <div class="panel-top">
  91. <div class="tbar-title">
  92. <span class="tbar-label">节点人员设置</span>
  93. </div>
  94. <div class="panel-toolbar">
  95. <div class="toolBar">
  96. <div class="group"><a class="link save" onclick="save()"><span></span>保存</a></div>
  97. <div class="l-bar-separator"></div>
  98. <div class="group"><a class="link del" onclick="dialog.close();"><span></span>关闭</a></div>
  99. <div class="l-bar-separator"></div>
  100. </div>
  101. </div>
  102. </div>
  103. </div>
  104. <div class="panel-body">
  105. <fieldset style="margin: 5px 0px 5px 0px;" zone="team" >
  106. <legend><span>规则设置</span></legend>
  107. <div class="table-top">
  108. <div class="table-top-right">
  109. <div class="toolBar" style="margin:0;">
  110. <div class="group"><a class="link add" onclick="addDiv(1)">添加规则</a></div>
  111. <div class="l-bar-separator"></div>
  112. <div class="group"><a class="link add" onclick="addDiv(2)">添加脚本</a></div>
  113. <div class="l-bar-separator"></div>
  114. <div class="group"><a class="link switchuser" onclick="assembleDiv()">组合规则</a></div>
  115. <div class="l-bar-separator"></div>
  116. <div class="group"><a class="link switchuser" onclick="splitDiv()">拆分规则</a></div>
  117. <div class="l-bar-separator"></div>
  118. <div class="group"><a class="link del" onclick="removeDiv()">删除</a></div>
  119. </div>
  120. </div>
  121. </div>
  122. <div id="ruleDiv" style="border:2px solid #ccc;margin:5px 0 0 0;"></div>
  123. </fieldset>
  124. <fieldset style="margin: 5px 0px 5px 0px;" zone="team" >
  125. <legend><span>人员设置</span></legend>
  126. <div style="margin-top:5px;">
  127. <input type="hidden" name="defId" value="${bpmDefinition.defId}" />
  128. <input type="hidden" id="conditionId" name="conditionId" value="${bpmUserCondition.id}" />
  129. <%@include file="/commons/include/nodeUserSelector.jsp" %>
  130. </div>
  131. </fieldset>
  132. <!-- 规则模板 -->
  133. <%@include file="/commons/include/nodeRuleTemplate.jsp" %>
  134. <!-- 人员设置模板 -->
  135. <%@include file="/commons/include/nodeUserTemplate.jsp" %>
  136. <div class="hidden">
  137. <div id="userSetTypesSelectOpt">
  138. <c:forEach items="${userSetTypes}" var="item">
  139. <option value="${item.key}" <c:if test="${item.key eq 'users'}">selected="selected"</c:if> >${item.value["title"]}</option>
  140. </c:forEach>
  141. </div>
  142. <textarea id="conditionEntity">
  143. {
  144. setId:"${setId}",
  145. defId:${defId},
  146. actDefId:"${bpmDefinition.actDefId}",
  147. nodeId:"${nodeId}",
  148. conditionId:"${bpmUserCondition.id}",
  149. conditionType:"${bpmUserCondition.conditionType}",
  150. sn:"${bpmUserCondition.sn}",
  151. groupNo:"${bpmUserCondition.groupNo}",
  152. formIdentity:"${bpmUserCondition.formIdentity}"
  153. }
  154. </textarea>
  155. <textarea id="conditionTxt">
  156. ${bpmUserCondition.condition}
  157. </textarea>
  158. </div>
  159. <div id="divScriptData" style="display: none;">
  160. <a href="javascript:;" id="btnScript" class="link var" title="常用脚本" onclick="addPersonScript()">常用脚本</a>
  161. <ul>
  162. <li>表达式必须返回Set&lt;String>集合类型的数据,数据项为用户ID。</li>
  163. </ul>
  164. <textarea id="txtScriptData" rows="10" cols="80" style="height: 200px;width:480px"></textarea>
  165. </div>
  166. <div style="display: none">
  167. <input type="hidden" id="defId" value="${bpmDefinition.defId}" />
  168. <input type="hidden" id="actDefId" value="${bpmDefinition.actDefId}" />
  169. <input type="hidden" id="nodeId" value="${nodeId}" />
  170. <input type="hidden" id="parentActDefId" value="${parentActDefId}" />
  171. </div>
  172. </body>
  173. </html>