jquery.datetimebox.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. /**
  2. * EasyUI for jQuery 1.6.10
  3. *
  4. * Copyright (c) 2009-2018 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});
  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. _23=_22.formatter.call(this,_22.parser.call(this,_23));
  109. }
  110. $(this).combo("initValue",_23).combo("setText",_23);
  111. });
  112. },setValue:function(jq,_24){
  113. return jq.each(function(){
  114. _d(this,_24);
  115. });
  116. },reset:function(jq){
  117. return jq.each(function(){
  118. var _25=$(this).datetimebox("options");
  119. $(this).datetimebox("setValue",_25.originalValue);
  120. });
  121. }};
  122. $.fn.datetimebox.parseOptions=function(_26){
  123. var t=$(_26);
  124. return $.extend({},$.fn.datebox.parseOptions(_26),$.parser.parseOptions(_26,["timeSeparator","spinnerWidth",{showSeconds:"boolean"}]));
  125. };
  126. $.fn.datetimebox.defaults=$.extend({},$.fn.datebox.defaults,{spinnerWidth:"100%",showSeconds:true,timeSeparator:":",panelEvents:{mousedown:function(e){
  127. }},keyHandler:{up:function(e){
  128. },down:function(e){
  129. },left:function(e){
  130. },right:function(e){
  131. },enter:function(e){
  132. _e(this);
  133. },query:function(q,e){
  134. _b(this,q);
  135. }},buttons:[{text:function(_27){
  136. return $(_27).datetimebox("options").currentText;
  137. },handler:function(_28){
  138. var _29=$(_28).datetimebox("options");
  139. _d(_28,_29.formatter.call(_28,new Date()));
  140. $(_28).datetimebox("hidePanel");
  141. }},{text:function(_2a){
  142. return $(_2a).datetimebox("options").okText;
  143. },handler:function(_2b){
  144. _e(_2b);
  145. }},{text:function(_2c){
  146. return $(_2c).datetimebox("options").closeText;
  147. },handler:function(_2d){
  148. $(_2d).datetimebox("hidePanel");
  149. }}],formatter:function(_2e){
  150. var h=_2e.getHours();
  151. var M=_2e.getMinutes();
  152. var s=_2e.getSeconds();
  153. function _2f(_30){
  154. return (_30<10?"0":"")+_30;
  155. };
  156. var _31=$(this).datetimebox("spinner").timespinner("options").separator;
  157. var r=$.fn.datebox.defaults.formatter(_2e)+" "+_2f(h)+_31+_2f(M);
  158. if($(this).datetimebox("options").showSeconds){
  159. r+=_31+_2f(s);
  160. }
  161. return r;
  162. },parser:function(s){
  163. if($.trim(s)==""){
  164. return new Date();
  165. }
  166. var dt=s.split(" ");
  167. var d=$.fn.datebox.defaults.parser(dt[0]);
  168. if(dt.length<2){
  169. return d;
  170. }
  171. var _32=$(this).datetimebox("spinner").timespinner("options").separator;
  172. var tt=dt[1].split(_32);
  173. var _33=parseInt(tt[0],10)||0;
  174. var _34=parseInt(tt[1],10)||0;
  175. var _35=parseInt(tt[2],10)||0;
  176. return new Date(d.getFullYear(),d.getMonth(),d.getDate(),_33,_34,_35);
  177. }});
  178. })(jQuery);