daterange.jsp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <%@page language="java" pageEncoding="UTF-8" %>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title></title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <%@include file="/commons/include/form.jsp" %>
  8. <link rel="stylesheet" type="text/css" href="../input.css">
  9. <script type="text/javascript" src="${ctx}/js/ueditor2/dialogs/internal.js"></script>
  10. <script type="text/javascript">
  11. var curElement = null,
  12. validate = '',
  13. name = '',
  14. tableName = '',
  15. isMoble =false;
  16. isMain =true;
  17. $(function(){
  18. //JSON 没有兼容IE时 就用到json2.js
  19. if(typeof JSON == 'undefined'){
  20. $('head').append($("<script type='text/javascript' src='${ctx}/js/util/json2.js'>"));
  21. }
  22. var tableId = editor.tableId;
  23. curElement = editor.selection.getStart();
  24. validate = curElement.getAttribute("validate");
  25. if(!validate){
  26. validate = '{}';
  27. }
  28. validate = eval("("+validate+")");
  29. if(tableId){ //通过表生成
  30. name = curElement.getAttribute("name");
  31. var names = name.split(':');
  32. isMain = names[0]=='s'?false:true;
  33. tableName =names[1];
  34. var url = __ctx
  35. + '/platform/form/bpmFormTable/getTableById.ht?tableId='
  36. + tableId;
  37. $.post(url, function(data) {
  38. initFieldsDiv(data,validate);
  39. });
  40. }
  41. else{ //编辑器设计表单时获取字段并验证字段
  42. var element = curElement.parentNode;
  43. var div = $(element).parents('[type="subtable"]');
  44. if(div.length> 0){
  45. isMain = false;
  46. tableName = div.attr("tablename");
  47. }
  48. var objForm = window.parent.formContainer.getResult();
  49. var params={};
  50. params.html=objForm.form;
  51. params.formDefId=editor.formDefId;
  52. $.post(__ctx + '/platform/form/bpmFormDef/validDesign.ht', params, function(data){
  53. if(data.valid){
  54. initFieldsDiv(data,validate);
  55. }
  56. else{
  57. alert(data.errorMsg);
  58. }
  59. });
  60. }
  61. if(editor.isMoble_)isMoble =true;
  62. });
  63. function initFieldsDiv(data,validate){
  64. var mainTable = data.table,pre='';
  65. var dateList = [];
  66. if(isMain){
  67. tableName = mainTable.tableName;
  68. var fieldList = mainTable.fieldList;
  69. getDateList(fieldList,dateList);
  70. pre =isMoble? "data.main." : "m:"+tableName+":";
  71. }else{
  72. var subTableList = mainTable.subTableList,
  73. subTable = {};
  74. for (var i = 0, c; c = subTableList[i++];) {
  75. if(c.tableName == tableName){
  76. subTable = c;
  77. break;
  78. }
  79. }
  80. tableName = subTable.tableName;
  81. getDateList(subTable.fieldList,dateList)
  82. pre =isMoble? "data.sub."+tableName+"." : "s:"+tableName+":";
  83. }
  84. initFields(dateList,pre,validate);
  85. }
  86. function getDateList(fieldList,dateList){
  87. for (var i = 0, c; c = fieldList[i++];) {
  88. if(c.controlType == 15 || c.fieldType == 'date')
  89. dateList.push(c);
  90. }
  91. }
  92. function initFields(data,pre,validate){
  93. var startdate = $('#startdate'),
  94. enddate = $('#enddate');
  95. for (var i = 0, c; c = data[i++];) {
  96. var opt = $('<option value="'+pre+c.fieldName+'" >'+c.fieldDesc+'</option>');
  97. var opt1 = $('<option value="'+pre+c.fieldName+'" >'+c.fieldDesc+'</option>');
  98. startdate.append(opt);
  99. enddate.append(opt1);
  100. }
  101. var dateRangeStart = validate.dateRangeStart,
  102. dateRangeEnd = validate.dateRangeEnd;
  103. //对验证处理
  104. if(dateRangeStart){
  105. var target = dateRangeStart.target;
  106. startdate.val(target);
  107. }
  108. if(dateRangeEnd){
  109. var target = dateRangeEnd.target;
  110. enddate.val(target);
  111. }
  112. }
  113. //确定
  114. dialog.onok = function() {
  115. if(!curElement||!validate)return;
  116. var startdate = $("#startdate").val(),
  117. enddate = $("#enddate").val();
  118. delete validate['dateRangeStart'];
  119. delete validate['dateRangeEnd'];
  120. if(startdate){
  121. validate['dateRangeStart'] = {target:startdate,range:isMain?'':'sub'};
  122. }
  123. if(enddate){
  124. validate['dateRangeEnd'] = {target:enddate,range:isMain?'':'sub'};
  125. }
  126. var str = '';
  127. if(typeof validate != 'undefined' && validate!=""){
  128. var str = JSON2.stringify(validate).replace(/\"/g,"'"); //JS 把所有的双引号 替换成单引号
  129. }
  130. $(curElement).attr("validate",str);
  131. };
  132. </script>
  133. </head>
  134. <body >
  135. <div id="inputPanel">
  136. <fieldset class="base">
  137. <legend><var id="lang_date_range"></var></legend>
  138. <table>
  139. <tr>
  140. <th><var id="lang_less_equal"></var>:</th>
  141. <td>
  142. <select id="startdate">
  143. <option value="">--请选择--</option>
  144. </select>
  145. </td>
  146. </tr>
  147. <tr>
  148. <th><var id="lang_more_equal"></var>:</th>
  149. <td>
  150. <select id="enddate">
  151. <option value="">--请选择--</option>
  152. </select>
  153. </td>
  154. </tr>
  155. </table>
  156. </fieldset>
  157. </div>
  158. </body>
  159. </html>