sysUserParamDialog.jsp 7.2 KB

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