conditionScriptEditDialog.jsp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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. <%@include file="/commons/include/form.jsp"%>
  6. <title>设置条件脚本</title>
  7. <script type="text/javascript"src="${ctx}/js/hotent/platform/bpm/FlowVarWindow.js"></script>
  8. <script type="text/javascript"src="${ctx}/js/hotent/platform/system/ScriptDialog.js"></script>
  9. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/RuleDialog.js" ></script>
  10. <script type="text/javascript" src="${ctx}/js/javacode/codemirror.js"></script>
  11. <script type="text/javascript"src="${ctx}/js/hotent/platform/system/ConditionScriptAddDialog.js"></script>
  12. <script type="text/javascript"src="${ctx}/js/hotent/platform/system/ConditionScriptDialog.js"></script>
  13. <link rel="stylesheet" type="text/css" href="${ctx}/js/codemirror/lib/codemirror.css" >
  14. <script type="text/javascript" src="${ctx}/js/codemirror/lib/codemirror.js"></script>
  15. <script type="text/javascript" src="${ctx}/js/codemirror/mode/groovy/groovy.js"></script>
  16. <style type="text/css">
  17. .CodeMirror{
  18. font-size:medium;
  19. _position:relative;
  20. }
  21. </style>
  22. <script type="text/javascript">
  23. /*KILLDIALOG*/
  24. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  25. //var winArgs = window.dialogArguments;
  26. var winArgs = dialog.get("data");
  27. var defId = winArgs.defId;
  28. var editor=null;
  29. $(function(){
  30. var width = $("#scritp").width();
  31. var height = $("#script").height();
  32. editor = CodeMirror.fromTextArea(document.getElementById("script"), {
  33. mode: "text/x-groovy",
  34. lineWrapping:true,
  35. lineNumbers: true
  36. });
  37. editor.setSize(width,height);
  38. if(winArgs.script){
  39. editor.setValue(winArgs.script);
  40. }
  41. });
  42. function addCondScript(obj){
  43. var _this = $(obj);
  44. ConditionScriptAddDialog({
  45. data:{
  46. defId:defId
  47. },
  48. callback:addScriptCallBack
  49. });
  50. };
  51. function addScript(obj){
  52. var _this = $(obj);
  53. ScriptDialog({
  54. callback:function(data){
  55. var pos=editor.getCursor();
  56. editor.replaceRange(data,pos);
  57. }
  58. });
  59. };
  60. function addScriptCallBack(data){
  61. var script = data.script;
  62. var inst = script.classInsName;
  63. var method = script.methodName;
  64. var str = "return "+inst +"."+method+ "( ";
  65. var paramStr="";
  66. for(var i=0 ; i<script.argument.length; i++){
  67. var p=script.argument[i];
  68. switch(p.paraValType){
  69. case '1':
  70. paramStr += p.paraVal+" , " ;
  71. break;
  72. case '2':
  73. if(p.paraType.indexOf("String")>0){
  74. paramStr += "\"" + p.paraVal+ "\" , " ;
  75. }else{
  76. paramStr += p.paraVal+ " , " ;
  77. }
  78. break;
  79. }
  80. }
  81. if(paramStr){
  82. paramStr = paramStr.substring(0,paramStr.length-2);
  83. }
  84. str += paramStr+");" ;
  85. var pos=editor.getCursor();
  86. editor.replaceRange(str,pos);
  87. };
  88. /**
  89. * OK事件处理
  90. */
  91. function onOk(obj){
  92. var _this = $(obj);
  93. var condition = getConditionContent();
  94. var winRtn = {
  95. status:1,
  96. condition:condition
  97. };
  98. //window.returnValue = winRtn;
  99. dialog.get("sucCall")(winRtn);
  100. dialog.close();
  101. };
  102. /**
  103. * 获取脚本内容
  104. */
  105. function getConditionContent(){
  106. editor.save();
  107. var condition = $("#script").val();
  108. return condition;
  109. };
  110. </script>
  111. </head>
  112. <body>
  113. <div class="panel" >
  114. <div class="panel-top">
  115. <div class="tbar-title">
  116. <span class="tbar-label">设置条件脚本</span>
  117. </div>
  118. <div class="panel-toolbar">
  119. <div class="toolBar">
  120. <div class="group">
  121. <a class="link ok" onclick="onOk(this)"><span></span>确定</a>
  122. </div>
  123. <div class="l-bar-separator"></div>
  124. <div class="group">
  125. <a class="link del" href="javascript:;" onclick="dialog.close()"><span></span>关闭</a>
  126. </div>
  127. </div>
  128. </div>
  129. </div>
  130. <div class="panel-body">
  131. <form id="bpmNodeRuleForm" method="post" action="save.ht">
  132. <table class="table-detail" cellpadding="0" cellspacing="0" border="0" >
  133. <tr>
  134. <th rowspan="2" width="20%">脚本:</th>
  135. <td>
  136. <div style="padding: 5px">
  137. <a href="javascript:;" onclick="addCondScript(this)" class="link var" title="常用条件脚本">常用条件脚本</a>
  138. <a href="javascript:;" onclick="addScript(this)" class="link var" title="常用脚本">常用脚本</a>
  139. </div>
  140. </td>
  141. </tr>
  142. <tr >
  143. <td>
  144. <textarea id="script" style="width: 100px;height: 100px" ></textarea>
  145. </td>
  146. </tr>
  147. </table>
  148. </form>
  149. </div>
  150. </div>
  151. </body>
  152. </html>