bpmDefinitionDialog.jsp 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <%
  2. //我的流程定义外面窗口
  3. %>
  4. <%@page import="com.hotent.platform.model.system.GlobalType"%>
  5. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
  6. <%@include file="/commons/include/html_doctype.html" %>
  7. <html>
  8. <head>
  9. <title>流程定义选择器</title>
  10. <%@include file="/commons/include/form.jsp" %>
  11. <link rel="stylesheet" href="${ctx}/js/tree/zTreeStyle.css" type="text/css" /><!-- -->
  12. <script type="text/javascript" src="${ctx}/js/lg/plugins/ligerMenu.js"></script>
  13. <script type="text/javascript" src="${ctx}/js/tree/jquery.ztree.js"></script>
  14. <script type="text/javascript" src="${ctx}/js/lg/plugins/ligerLayout.js"></script>
  15. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/SysDialog.js"></script>
  16. <script type="text/javascript" src="${ctx}/js/hotent/platform/form/GlobalType.js"></script>
  17. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/GlobalMenu.js"></script>
  18. <style type="text/css">
  19. body{overflow: hidden;}
  20. </style>
  21. <script type="text/javascript">
  22. /*KILLDIALOG*/
  23. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  24. //单选
  25. var isSingle=${isSingle};
  26. //取有效的流程
  27. var validStatus=${validStatus};
  28. //显示全部
  29. var showAll=${showAll};
  30. //内容标识
  31. var defMark='id';
  32. var catKey="<%=GlobalType.CAT_FLOW%>";
  33. var globalType=new GlobalType(catKey,"glTypeTree",
  34. {
  35. onClick:onClick,
  36. url:'${ctx}/platform/system/globalType/getByCatKeyForBpm.ht'
  37. ,expandByDepth:1
  38. });
  39. $(function (){
  40. //布局
  41. $("#defLayout").ligerLayout({ leftWidth:210,height: '90%',allowLeftResize:false});
  42. //加载菜单
  43. globalType.loadGlobalTree();
  44. //初始化传入数据
  45. //var conf = window.dialogArguments;
  46. var conf = dialog.get('conf');
  47. initData(conf);
  48. var url="${ctx}/platform/bpm/bpmDefinition/selector.ht?isSingle={0}&validStatus={1}&showAll={2}";
  49. url=String.format(url,isSingle,validStatus,showAll);
  50. $("#bpmDefinitionListFrame").attr("src",url);
  51. });
  52. //初始化传入数据
  53. function initData(conf){
  54. if(conf!=undefined && conf!=null && conf!=""){ //模态窗口的接收方法
  55. var defArry = conf.defArry;
  56. defMark = conf.defMark; // id 或者key做标识
  57. for(i=0;i<defArry.length;i++){
  58. add(defArry[i]);
  59. }
  60. }
  61. };
  62. //左击
  63. function onClick(treeNode){
  64. var typeId=treeNode.typeId;
  65. var url="${ctx}/platform/bpm/bpmDefinition/selector.ht?isSingle={0}&validStatus={1}&showAll={2}&typeId={3}";
  66. url=String.format(url,isSingle,validStatus,showAll,typeId);
  67. $("#bpmDefinitionListFrame").attr("src",url);
  68. };
  69. //展开收起
  70. function treeExpandAll(type){
  71. globalType.treeExpandAll(type);
  72. };
  73. //返回选择的流程定义
  74. function selectFlow(){
  75. var chIds
  76. if(isSingle==true){
  77. chIds = $('#bpmDefinitionListFrame').contents().find(":input[name='defId'][checked]");
  78. }else{
  79. chIds = $("#processList").find(":input[name='defId']");
  80. }
  81. if(chIds.length == 0){
  82. $.ligerDialog.warn("请至少选择一条数据");
  83. return;
  84. }
  85. var defIdArr=new Array();
  86. var subjectArr=new Array();
  87. var defKeyArr=new Array();
  88. var actDefIdArr =new Array();
  89. $.each(chIds,function(i,ch){
  90. var aryTmp=$(ch).val().split("#");
  91. defIdArr.push(aryTmp[0]);
  92. subjectArr.push(aryTmp[1]);
  93. defKeyArr.push(aryTmp[2]);
  94. actDefIdArr.push(aryTmp[3]);
  95. });
  96. var defIds=defIdArr.join(','),
  97. subjects=subjectArr.join(','),
  98. defKeys=defKeyArr.join(','),
  99. actDefIds =actDefIdArr.join(',');
  100. var obj={defIds:defIds,subjects:subjects,defKeys:defKeys,actDefIds:actDefIds};
  101. //window.returnValue=obj;
  102. dialog.get('sucCall')(obj);
  103. dialog.close();
  104. };
  105. function selectMulti(obj){
  106. if ($(obj).attr("checked") == "checked"){
  107. var subject = $(obj).siblings(":hidden[name='subject']").val();
  108. var defKey = $(obj).siblings(":hidden[name='defKey']").val();
  109. var data = $(obj).val()+'#'+subject+'#'+defKey;
  110. add(data);
  111. }
  112. };
  113. function selectAll(obj) {
  114. var state = $(obj).attr("checked");
  115. var rtn=state == undefined?false:true;
  116. checkAll(rtn);
  117. };
  118. function checkAll(checked) {
  119. $("#bpmDefinitionListFrame").contents().find("input[type='checkbox'][class='pk']").each(function() {
  120. $(this).attr("checked", checked);
  121. if (checked) {
  122. var subject = $(this).siblings(":hidden[name='subject']").val();
  123. var defKey = $(this).siblings(":hidden[name='defKey']").val();
  124. var data = $(this).val()+'#'+subject+'#'+defKey;
  125. add(data);
  126. }
  127. });
  128. };
  129. function dellAll() {
  130. $("#processList").html("<tr class='hidden'></tr>");
  131. };
  132. function del(obj) {
  133. var tr = $(obj).parents("tr");
  134. $(tr).remove();
  135. };
  136. function add(data) {
  137. var aryTmp=data.split("#");
  138. var defId=aryTmp[0];
  139. //以key为标识时
  140. if(defMark=="key"&&aryTmp.length>2){
  141. defId=aryTmp[2];
  142. }
  143. var len= $("#process_" + defId).length;
  144. if(len>0) return;
  145. var aryData=['<tr id="process_'+defId+'">',
  146. '<td>',
  147. '<input type="hidden" class="pk" name="defId" value="'+data +'"><span> ',
  148. aryTmp[1],
  149. '</span></td>',
  150. '<td><a onclick="javascript:del(this);" class="link del" ></a> </td>',
  151. '</tr>'];
  152. $("#processList").append(aryData.join(""));
  153. };
  154. $(function(){
  155. //快速查找
  156. var findStr = '';
  157. $("input.quick-find").bind('keyup',function(){
  158. var str = $(this).val();
  159. if(!str)return;
  160. if(str==findStr)return;
  161. findStr = str;
  162. var tbody = $("#processList"),
  163. firstTr = $('tr.hidden',tbody);
  164. $("tr",tbody).each(function(){
  165. var me = $(this),
  166. span = $('span',me),
  167. spanStr = span.html();
  168. if(!spanStr)return true;
  169. if(spanStr.indexOf(findStr)>-1){
  170. $(this).insertAfter(firstTr);
  171. }
  172. });
  173. });
  174. });
  175. </script>
  176. </head>
  177. <body>
  178. <div id="defLayout" >
  179. <div position="left" title="流程分类" style="overflow: auto;float:left;width:100%">
  180. <div class="tree-toolbar">
  181. <span class="toolBar">
  182. <div class="group"><a class="link reload" id="treeFresh" href="javascript:globalType.loadGlobalTree();;"><span></span>刷新</a></div>
  183. <div class="l-bar-separator"></div>
  184. <div class="group"><a class="link expand" id="treeExpandAll" href="javascript:treeExpandAll(true)"><span></span>展开</a></div>
  185. <div class="l-bar-separator"></div>
  186. <div class="group"><a class="link collapse" id="treeCollapseAll" href="javascript:treeExpandAll(false)"><span></span>收起</a></div>
  187. </span>
  188. </div>
  189. <ul id="glTypeTree" class="ztree"></ul>
  190. </div>
  191. <div position="center" title="流程定义">
  192. <iframe id="bpmDefinitionListFrame" name="bpmDefinitionListFrame" height="100%" width="100%" frameborder="0" ></iframe>
  193. </div>
  194. <c:if test="${param.isSingle==false}">
  195. <div position="right" title=" <a onclick='javascript:dellAll();' class='link del'>清空 </a><input type='text' class='quick-find' title='查找'/> " style="overflow-y: auto;">
  196. <table width="145" id="processList" class="table-grid table-list" id="0" cellpadding="1" cellspacing="1">
  197. <tr class="hidden"></tr>
  198. </table>
  199. </div>
  200. </c:if>
  201. </div>
  202. <div position="bottom" class="bottom" style='margin-top:10px;'>
  203. <a href='#' class='button' onclick="selectFlow()" ><span class="icon ok"></span><span >选择</span></a>
  204. <a href='#' class='button' style='margin-left:10px;' onclick="dialog.close()"><span class="icon cancel"></span><span >取消</span></a>
  205. </div>
  206. </body>
  207. </html>