bpmReferDefinitionActInstDialog.jsp 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@include file="/commons/include/html_doctype.html"%>
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>流程引用</title>
  8. <%@include file="/commons/include/get.jsp"%>
  9. <script type="text/javascript" src="${ctx}/js/lg/plugins/ligerLayout.js" ></script>
  10. <script type="text/javascript">
  11. /*KILLDIALOG*/
  12. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  13. $(function(){
  14. $("#defLayout").ligerLayout({
  15. leftWidth: 250,
  16. bottomHeight :40,
  17. allowRightResize:false,
  18. allowTopResize:false,
  19. allowBottomResize:false,
  20. height: '95%',
  21. minLeftWidth:250});
  22. $("#selectRefer").change(function(){
  23. var _this = $(this);
  24. if(!_this.val()){
  25. return;
  26. }
  27. var referDefKey = _this.val();
  28. $("#processRunListFrame").contents().find("#btnSearch").trigger("click");
  29. });
  30. $('#btnClose').click(function(){
  31. dialog.close();
  32. });
  33. initData();
  34. var findStr = '';
  35. //快速查找
  36. $("input.quick-find").bind('keyup',function(){
  37. var str = $(this).val();
  38. if(!str)return;
  39. if(str==findStr)return;
  40. findStr = str;
  41. var tbody = $("#instList"),
  42. firstTr = $('tr.hidden',tbody);
  43. $("tr",tbody).each(function(){
  44. var me = $(this),
  45. span = $('span',me),
  46. spanStr = span.html();
  47. if(!spanStr)return true;
  48. if(spanStr.indexOf(findStr)>-1){
  49. $(this).insertAfter(firstTr);
  50. }
  51. });
  52. });
  53. });
  54. //初始化父级窗口传进来的数据
  55. function initData(){
  56. //var obj = window.dialogArguments;
  57. var obj =dialog.get("arguments");
  58. if(obj&&obj.length>0){
  59. for(var i=0,c;c=obj[i++];){
  60. var data = c.id+'#'+c.name;
  61. add(data);
  62. }
  63. }
  64. };
  65. function selectInst(){
  66. var aryInsts =$("input[name='inst']", $("#instList"));
  67. if(aryInsts.length==0){
  68. alert("请选择流程实例!");
  69. return;
  70. }
  71. var aryId=[];
  72. var aryName=[];
  73. var json = [];
  74. aryInsts.each(function(){
  75. var data=$(this).val();
  76. var aryInst=data.split("#");
  77. aryId.push(aryInst[0]);
  78. aryName.push(aryInst[1]);
  79. json.push({id:aryInst[0],name:aryInst[1]});
  80. });
  81. var instIds=aryId.join(",");
  82. var instNames=aryName.join(",");
  83. var obj={};
  84. obj.ids=instIds;
  85. obj.names=instNames;
  86. obj.json = json;
  87. //window.returnValue=obj;
  88. dialog.get("sucCall")(obj);
  89. dialog.close();
  90. };
  91. function add(data) {
  92. data = removeColorSpan(data);
  93. var aryTmp=data.split("#");
  94. var instId=aryTmp[0];
  95. var len= $("#inst_" + instId).length;
  96. if(len>0) return;
  97. var instTemplate= $("#instTemplate").val();
  98. var html=instTemplate.replace("#instId",instId)
  99. .replace("#data",data)
  100. .replace("#name",aryTmp[1]);
  101. $("#instList").append(html);
  102. };
  103. //去除流程标题中控制标题颜色的span标签
  104. function removeColorSpan(data){
  105. var div = $("<div></div>");
  106. div.html(data);
  107. return div.text();
  108. }
  109. function selectMulti(obj) {
  110. if ($(obj).attr("checked") == "checked"){
  111. var data = $(obj).val();
  112. add(data);
  113. }
  114. };
  115. function dellAll() {
  116. $("#instList").empty();
  117. };
  118. function del(obj) {
  119. var tr = $(obj).closest("tr");
  120. $(tr).remove();
  121. };
  122. //清空所选实例
  123. function clearInst(){
  124. //window.returnValue = {ids:'',names:''};
  125. var rtn={ids:'',names:''};
  126. dialog.get("sucCall")(rtn);
  127. dialog.close();
  128. }
  129. </script>
  130. </head>
  131. <body>
  132. <div id="defLayout">
  133. <div position="center" style="height:580px;">
  134. <c:if test="${hasRefer eq true}">
  135. <div id="refer-div">
  136. <table class="table-detail">
  137. <tr>
  138. <th width="20%">引用的流程:</th>
  139. <td>
  140. <select id="selectRefer" style="min-width: 100px">
  141. <option value="0" selected="selected">--请选择--</option>
  142. <c:forEach items="${refers}" var="refer">
  143. <option value="${refer.referDefKey}">${refer.subject}</option>
  144. </c:forEach>
  145. </select>
  146. </td>
  147. </tr>
  148. </table>
  149. </div>
  150. </c:if>
  151. <iframe id="processRunListFrame" name="processRunListFrame" height="95%"
  152. width="100%" frameborder="0"
  153. src="${ctx}/platform/bpm/bpmReferDefinition/actInstSelector.ht?hasRefer=${hasRefer }&defId=${defId}"></iframe>
  154. </div>
  155. <div position="right" title="<span><a onclick='javascript:dellAll();' class='link del'>清空 </a><input type='text' class='quick-find' title='查找' style='width:60px;' /></span>"
  156. style="overflow: auto;height:94%;width:170px;">
  157. <table width="145" class="table-grid table-list" cellpadding="1" cellspacing="1">
  158. <tbody id="instList">
  159. <tr class="hidden"></tr>
  160. </tbody>
  161. </table>
  162. </div>
  163. <div position="bottom" class="bottom" style="height:30px;" >
  164. <a href="javascript:;" id="btnSelect" class="button" onclick="selectInst()" style="margin-right:10px;" ><span class="icon ok"></span><span class="chosen">选择</span></a>
  165. <a href="javascript:;" class="button" onclick="clearInst()"><span class="icon cancel" ></span><span class="chosen" >清空</span></a>
  166. <a href="javascript:;" id="btnClose" class="button" onclick="dialog.close()" style="margin-left:10px;" ><span class="icon cancel" ></span><span class="chosen" >取消</span></a>
  167. </div>
  168. </div>
  169. </div>
  170. <textarea id="instTemplate" style="display: none;">
  171. <tr id="inst_#instId">
  172. <td>
  173. <input type="hidden" name="inst" value="#data"><span>#name</span>
  174. </td>
  175. <td style="width: 30px;" nowrap="nowrap"><a onclick="javascript:del(this);" class="link del" >&nbsp;</a></td>
  176. </tr>
  177. </textarea>
  178. </body>
  179. </html>