sysOrgParamDialog.jsp 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" import="com.hotent.platform.model.system.SysParam"
  2. pageEncoding="UTF-8"%>
  3. <%@include file="/commons/include/html_doctype.html"%>
  4. <html>
  5. <head>
  6. <title>组织参数自定义</title>
  7. <%@include file="/commons/include/form.jsp" %>
  8. <f:link href="Aqua/css/ligerui-all.css"></f:link>
  9. <f:link href="tree/zTreeStyle.css"></f:link>
  10. <link href="${ctx}/js/jquery/plugins/link-div-default.css" rel="stylesheet" type="text/css" />
  11. <script type="text/javascript" src="${ctx}/js/tree/jquery.ztree.js"></script>
  12. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/ConditionExpression.js"></script>
  13. <script type="text/javascript" src="${ctx}/js/lg/plugins/ligerLayout.js"></script>
  14. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/BpmNodeRule.js"></script>
  15. <script type="text/javascript" src="${ctx}/js/jquery/plugins/jquery.linkdiv.js"></script>
  16. <script type="text/javascript">
  17. /*KILLDIALOG*/
  18. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  19. //var args = window.dialogArguments;
  20. var args=dialog.get("args");
  21. $(function() {
  22. var cmpIdsJson = jQuery.parseJSON(args.cmpIds);
  23. $("#defLayout").ligerLayout({
  24. height : '90%'
  25. });
  26. $("#ruleDiv").linkdiv({data:cmpIdsJson,updateContent:updateContent,rule2json:rule2json});
  27. });
  28. function changeCondition(obj) {
  29. var me = obj;
  30. var dataType = $("select[name='paramKey']", $(me).closest("div")).find("option:selected").attr("title");
  31. if (dataType.length > 0) {
  32. var $paramCondition = $("select[name='paramCondition']", $(me).closest("div"));
  33. $("option", $paramCondition).remove();
  34. $paramCondition.append("<option value='='>=</option>");
  35. $paramCondition.append("<option value='!='>!=</option>");
  36. if (dataType == "String") {
  37. $paramCondition.append(
  38. "<option value=' like '>like</option>");
  39. } else {
  40. $paramCondition.append("<option value='>'>></option>");
  41. $paramCondition.append("<option value='<'><</option>");
  42. $paramCondition.append("<option value='>='>>=</option>");
  43. $paramCondition.append("<option value='<='><=</option>");
  44. }
  45. }
  46. };
  47. function validateVal(obj) {
  48. var me = obj;
  49. var dataType = $("select[name='paramKey']", $(me).closest("div")).find("option:selected").attr("title");
  50. var $paramValue = $("input[name='paramValue']", $(me).closest("div"));
  51. var paramValue = $paramValue.val();
  52. var yes = true;
  53. if (paramValue=="") {
  54. if ($paramValue.next().html() == null
  55. || $paramValue.next().html() == '')
  56. $paramValue.after('<font color="red">条件不能为空。</font>');
  57. yes = false;
  58. }
  59. if (dataType == "Integer") {
  60. if (isNaN(paramValue)) {
  61. $paramValue.addClass("error");
  62. if ($paramValue.next().html() == null
  63. || $paramValue.next().html() == '')
  64. $paramValue.after('<font color="red">请输入数字。</font>');
  65. yes = false;
  66. }
  67. } else if (dataType == "Date") {
  68. var pattern = /^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/;
  69. if (!pattern.exec(paramValue)) {
  70. $paramValue.addClass("error");
  71. if ($paramValue.next().html() == null
  72. || $paramValue.next().html() == '')
  73. $paramValue.after('<font color="red">请输入日期。</font>');
  74. yes = false;
  75. }
  76. }
  77. if (yes) {
  78. $paramValue.removeClass("error");
  79. if ($paramValue.next().html() != null)
  80. $paramValue.next().empty();
  81. }
  82. return yes;
  83. };
  84. function selectParam() {
  85. var json = getData();
  86. var jsonStr = "";
  87. var text = [];
  88. if(json.length > 0){
  89. jsonStr = JSON2.stringify(json);
  90. compileConDesc(json, text);
  91. }
  92. /* window.returnValue = {
  93. paramValue1 : jsonStr,
  94. paramValue2 : text.join('')
  95. }; */
  96. var rtn={
  97. paramValue1 : jsonStr,
  98. paramValue2 : text.join('')
  99. };
  100. dialog.get("sucCall")(rtn);
  101. dialog.close();
  102. };
  103. //组装规则描述
  104. function compileConDesc(json,text){
  105. for(var i=0,c;c=json[i++];){
  106. if(c.compType){
  107. text.push(c.compType=='or'?' 或者 ':' 并且 ');
  108. }
  109. if(c.branch){
  110. var branchDesc = ['('];
  111. compileConDesc(c.sub,branchDesc);
  112. branchDesc.push(')');
  113. text.push(branchDesc.join(''));
  114. }
  115. else{
  116. text.push(c.conDesc);
  117. }
  118. }
  119. };
  120. function preview(){
  121. var orgParam = JSON2.stringify(getData());
  122. var dialogWidth=650;
  123. var dialogHeight=500;
  124. var conf={dialogWidth:dialogWidth ,dialogHeight:dialogHeight ,help:0,status:0,scroll:0,center:1};
  125. var winArgs="dialogWidth="+conf.dialogWidth+"px;dialogHeight="+conf.dialogHeight
  126. +"px;help=" + conf.help +";status=" + conf.status +";scroll=" + conf.scroll +";center=" +conf.center;
  127. var url=__ctx + '/platform/system/sysOrgParam/getByParamKey.ht';
  128. url=url.getNewUrl();
  129. var obj={flag:0,params:orgParam,url:url};
  130. //window.showModalDialog(url,obj,winArgs);
  131. DialogUtil.open({
  132. height:conf.dialogHeight,
  133. width: conf.dialogWidth,
  134. title : '预览',
  135. url: url,
  136. isResize: true,
  137. //自定义参数
  138. obj: obj
  139. });
  140. }
  141. function addDiv(ruleType) {
  142. $("#ruleDiv").linkdiv("addDiv",{ruleType:ruleType});
  143. }
  144. function removeDiv(){
  145. $("#ruleDiv").linkdiv("removeDiv");
  146. };
  147. function assembleDiv(){
  148. $("#ruleDiv").linkdiv("assembleDiv");
  149. };
  150. function splitDiv(){
  151. $("#ruleDiv").linkdiv("splitDiv");
  152. };
  153. function getData(){
  154. var json = $("#ruleDiv").linkdiv("getData");
  155. return json;
  156. };
  157. </script>
  158. </head>
  159. <body>
  160. <div id="defLayout">
  161. <div position="center" style="height:90%;overflow:auto;">
  162. <div class="panel-top">
  163. <div class="tbar-title">
  164. <span class="tbar-label">构造条件</span>
  165. </div>
  166. <div class="panel-toolbar">
  167. <div class="toolBar">
  168. <div class="group"><a onclick="addDiv(4)" class="link add"><span></span>添加</a></div>
  169. <div class="l-bar-separator"></div>
  170. <div class="group"><a class="link switchuser" onclick="assembleDiv()"><span></span>组合规则</a></div>
  171. <div class="l-bar-separator"></div>
  172. <div class="group"><a class="link switchuser" onclick="splitDiv()"><span></span>拆分规则</a></div>
  173. <div class="l-bar-separator"></div>
  174. <div class="group"><a class="link del" onclick="removeDiv()"><span></span>删除</a></div>
  175. <div class="l-bar-separator"></div>
  176. <div class="group"><a onclick="preview();" class="link preview"><span></span>预览</a></div>
  177. </div>
  178. </div>
  179. </div>
  180. <div class="panel-body">
  181. <div class="panel-detail" id="ruleDiv" style="border:3px solid #ccc;margin:5px 0 0 0;"></div>
  182. </div>
  183. </div>
  184. </div>
  185. <%@include file="/commons/include/nodeRuleTemplate.jsp" %>
  186. <div position="bottom" class="bottom" style='margin-top:10px'>
  187. &nbsp;&nbsp;<a href='#' class='button' onclick="selectParam()" ><span class="icon ok"></span><span >确定</span></a>
  188. &nbsp;&nbsp;<a href='#' class='button' onclick="dialog.close()"><span class="icon cancel"></span><span >取消</span></a>
  189. </div>
  190. </body>
  191. </html>