jquery.datetimebox.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. /**
  2. * EasyUI for jQuery 1.9.4
  3. *
  4. * Copyright (c) 2009-2020 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2){
  12. var _3=$.data(_2,"datetimebox");
  13. var _4=_3.options;
  14. $(_2).datebox($.extend({},_4,{onShowPanel:function(){
  15. var _5=$(this).datetimebox("getValue");
  16. _d(this,_5,true);
  17. _4.onShowPanel.call(this);
  18. },formatter:$.fn.datebox.defaults.formatter,parser:$.fn.datebox.defaults.parser}));
  19. $(_2).removeClass("datebox-f").addClass("datetimebox-f");
  20. $(_2).datebox("calendar").calendar({onSelect:function(_6){
  21. _4.onSelect.call(this.target,_6);
  22. }});
  23. if(!_3.spinner){
  24. var _7=$(_2).datebox("panel");
  25. var p=$("<div style=\"padding:2px\"><input></div>").insertAfter(_7.children("div.datebox-calendar-inner"));
  26. _3.spinner=p.children("input");
  27. }
  28. _3.spinner.timespinner({width:_4.spinnerWidth,showSeconds:_4.showSeconds,separator:_4.timeSeparator,hour12:_4.hour12});
  29. $(_2).datetimebox("initValue",_4.value);
  30. };
  31. function _8(_9){
  32. var c=$(_9).datetimebox("calendar");
  33. var t=$(_9).datetimebox("spinner");
  34. var _a=c.calendar("options").current;
  35. return new Date(_a.getFullYear(),_a.getMonth(),_a.getDate(),t.timespinner("getHours"),t.timespinner("getMinutes"),t.timespinner("getSeconds"));
  36. };
  37. function _b(_c,q){
  38. _d(_c,q,true);
  39. };
  40. function _e(_f){
  41. var _10=$.data(_f,"datetimebox").options;
  42. var _11=_8(_f);
  43. _d(_f,_10.formatter.call(_f,_11));
  44. $(_f).combo("hidePanel");
  45. };
  46. function _d(_12,_13,_14){
  47. var _15=$.data(_12,"datetimebox").options;
  48. $(_12).combo("setValue",_13);
  49. if(!_14){
  50. if(_13){
  51. var _16=_15.parser.call(_12,_13);
  52. $(_12).combo("setText",_15.formatter.call(_12,_16));
  53. $(_12).combo("setValue",_15.formatter.call(_12,_16));
  54. }else{
  55. $(_12).combo("setText",_13);
  56. }
  57. }
  58. var _16=_15.parser.call(_12,_13);
  59. $(_12).datetimebox("calendar").calendar("moveTo",_16);
  60. $(_12).datetimebox("spinner").timespinner("setValue",_17(_16));
  61. function _17(_18){
  62. function _19(_1a){
  63. return (_1a<10?"0":"")+_1a;
  64. };
  65. var tt=[_19(_18.getHours()),_19(_18.getMinutes())];
  66. if(_15.showSeconds){
  67. tt.push(_19(_18.getSeconds()));
  68. }
  69. return tt.join($(_12).datetimebox("spinner").timespinner("options").separator);
  70. };
  71. };
  72. $.fn.datetimebox=function(_1b,_1c){
  73. if(typeof _1b=="string"){
  74. var _1d=$.fn.datetimebox.methods[_1b];
  75. if(_1d){
  76. return _1d(this,_1c);
  77. }else{
  78. return this.datebox(_1b,_1c);
  79. }
  80. }
  81. _1b=_1b||{};
  82. return this.each(function(){
  83. var _1e=$.data(this,"datetimebox");
  84. if(_1e){
  85. $.extend(_1e.options,_1b);
  86. }else{
  87. $.data(this,"datetimebox",{options:$.extend({},$.fn.datetimebox.defaults,$.fn.datetimebox.parseOptions(this),_1b)});
  88. }
  89. _1(this);
  90. });
  91. };
  92. $.fn.datetimebox.methods={options:function(jq){
  93. var _1f=jq.datebox("options");
  94. return $.extend($.data(jq[0],"datetimebox").options,{originalValue:_1f.originalValue,disabled:_1f.disabled,readonly:_1f.readonly});
  95. },cloneFrom:function(jq,_20){
  96. return jq.each(function(){
  97. $(this).datebox("cloneFrom",_20);
  98. $.data(this,"datetimebox",{options:$.extend(true,{},$(_20).datetimebox("options")),spinner:$(_20).datetimebox("spinner")});
  99. $(this).removeClass("datebox-f").addClass("datetimebox-f");
  100. });
  101. },spinner:function(jq){
  102. return $.data(jq[0],"datetimebox").spinner;
  103. },initValue:function(jq,_21){
  104. return jq.each(function(){
  105. var _22=$(this).datetimebox("options");
  106. var _23=_22.value;
  107. if(_23){
  108. var _24=_22.parser.call(this,_23);
  109. _23=_22.formatter.call(this,_24);
  110. $(this).datetimebox("calendar").calendar("moveTo",_24);
  111. }
  112. $(this).combo("initValue",_23).combo("setText",_23);
  113. });
  114. },setValue:function(jq,_25){
  115. return jq.each(function(){
  116. _d(this,_25);
  117. });
  118. },reset:function(jq){
  119. return jq.each(function(){
  120. var _26=$(this).datetimebox("options");
  121. $(this).datetimebox("setValue",_26.originalValue);
  122. });
  123. },setDate:function(jq,_27){
  124. return jq.each(function(){
  125. var _28=$(this).datetimebox("options");
  126. $(this).datetimebox("calendar").calendar("moveTo",_27);
  127. _d(this,_27?_28.formatter.call(this,_27):"");
  128. });
  129. },getDate:function(jq){
  130. if(jq.datetimebox("getValue")){
  131. return jq.datetimebox("calendar").calendar("options").current;
  132. }else{
  133. return null;
  134. }
  135. }};
  136. $.fn.datetimebox.parseOptions=function(_29){
  137. var t=$(_29);
  138. return $.extend({},$.fn.datebox.parseOptions(_29),$.parser.parseOptions(_29,["timeSeparator","spinnerWidth",{showSeconds:"boolean"}]));
  139. };
  140. $.fn.datetimebox.defaults=$.extend({},$.fn.datebox.defaults,{spinnerWidth:"100%",showSeconds:true,timeSeparator:":",hour12:false,panelEvents:{mousedown:function(e){
  141. }},keyHandler:{up:function(e){
  142. },down:function(e){
  143. },left:function(e){
  144. },right:function(e){
  145. },enter:function(e){
  146. _e(this);
  147. },query:function(q,e){
  148. _b(this,q);
  149. }},buttons:[{text:function(_2a){
  150. return $(_2a).datetimebox("options").currentText;
  151. },handler:function(_2b){
  152. var _2c=$(_2b).datetimebox("options");
  153. _d(_2b,_2c.formatter.call(_2b,new Date()));
  154. $(_2b).datetimebox("hidePanel");
  155. }},{text:function(_2d){
  156. return $(_2d).datetimebox("options").okText;
  157. },handler:function(_2e){
  158. _e(_2e);
  159. }},{text:function(_2f){
  160. return $(_2f).datetimebox("options").closeText;
  161. },handler:function(_30){
  162. $(_30).datetimebox("hidePanel");
  163. }}],formatter:function(_31){
  164. if(!_31){
  165. return "";
  166. }
  167. return $.fn.datebox.defaults.formatter.call(this,_31)+" "+$.fn.timespinner.defaults.formatter.call($(this).datetimebox("spinner")[0],_31);
  168. },parser:function(s){
  169. s=$.trim(s);
  170. if(!s){
  171. return new Date();
  172. }
  173. var dt=s.split(" ");
  174. var _32=$.fn.datebox.defaults.parser.call(this,dt[0]);
  175. if(dt.length<2){
  176. return _32;
  177. }
  178. var _33=$.fn.timespinner.defaults.parser.call($(this).datetimebox("spinner")[0],dt[1]+(dt[2]?" "+dt[2]:""));
  179. return new Date(_32.getFullYear(),_32.getMonth(),_32.getDate(),_33.getHours(),_33.getMinutes(),_33.getSeconds());
  180. }});
  181. })(jQuery);