jquery.timepicker.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  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,"timepicker");
  13. var _4=_3.options;
  14. $(_2).addClass("timepicker-f").combo($.extend({},_4,{onShowPanel:function(){
  15. _5(this);
  16. _6(_2);
  17. _13(_2,$(_2).timepicker("getValue"));
  18. }}));
  19. $(_2).timepicker("initValue",_4.value);
  20. function _5(_7){
  21. var _8=$(_7).timepicker("options");
  22. var _9=$(_7).combo("panel");
  23. _9._unbind(".timepicker")._bind("click.timepicker",function(e){
  24. if($(e.target).hasClass("datebox-button-a")){
  25. var _a=parseInt($(e.target).attr("datebox-button-index"));
  26. _8.buttons[_a].handler.call(e.target,_7);
  27. }
  28. });
  29. };
  30. function _6(_b){
  31. var _c=$(_b).combo("panel");
  32. if(_c.children("div.datebox-button").length){
  33. return;
  34. }
  35. var _d=$("<div class=\"datebox-button\"><table cellspacing=\"0\" cellpadding=\"0\" style=\"width:100%\"><tr></tr></table></div>").appendTo(_c);
  36. var tr=_d.find("tr");
  37. for(var i=0;i<_4.buttons.length;i++){
  38. var td=$("<td></td>").appendTo(tr);
  39. var _e=_4.buttons[i];
  40. var t=$("<a class=\"datebox-button-a\" href=\"javascript:;\"></a>").html($.isFunction(_e.text)?_e.text(_b):_e.text).appendTo(td);
  41. t.attr("datebox-button-index",i);
  42. }
  43. tr.find("td").css("width",(100/_4.buttons.length)+"%");
  44. };
  45. };
  46. function _f(_10,_11){
  47. var _12=$(_10).data("timepicker").options;
  48. _13(_10,_11);
  49. _12.value=_14(_10);
  50. $(_10).combo("setValue",_12.value).combo("setText",_12.value);
  51. };
  52. function _13(_15,_16){
  53. var _17=$(_15).data("timepicker").options;
  54. if(_16){
  55. var _18=_16.split(" ");
  56. var hm=_18[0].split(":");
  57. _17.selectingHour=parseInt(hm[0],10);
  58. _17.selectingMinute=parseInt(hm[1],10);
  59. _17.selectingAmpm=_18[1];
  60. }else{
  61. _17.selectingHour=12;
  62. _17.selectingMinute=0;
  63. _17.selectingAmpm=_17.ampm[0];
  64. }
  65. _19(_15);
  66. };
  67. function _14(_1a){
  68. var _1b=$(_1a).data("timepicker").options;
  69. var h=_1b.selectingHour;
  70. var m=_1b.selectingMinute;
  71. var _1c=_1b.selectingAmpm;
  72. if(!_1c){
  73. _1c=_1b.ampm[0];
  74. }
  75. return (h<10?"0"+h:h)+":"+(m<10?"0"+m:m)+" "+_1c;
  76. };
  77. function _19(_1d){
  78. var _1e=$(_1d).data("timepicker").options;
  79. var _1f=$(_1d).combo("panel");
  80. var _20=_1f.children(".timepicker-panel");
  81. if(!_20.length){
  82. var _20=$("<div class=\"timepicker-panel f-column\"></div>").prependTo(_1f);
  83. }
  84. _20.empty();
  85. if(_1e.panelHeight!="auto"){
  86. var _21=_1f.height()-_1f.find(".datebox-button").outerHeight();
  87. _20._outerHeight(_21);
  88. }
  89. _22(_1d);
  90. _23(_1d);
  91. _20.off(".timepicker");
  92. _20.on("click.timepicker",".title-hour",function(e){
  93. _1e.selectingType="hour";
  94. _19(_1d);
  95. }).on("click.timepicker",".title-minute",function(e){
  96. _1e.selectingType="minute";
  97. _19(_1d);
  98. }).on("click.timepicker",".title-am",function(e){
  99. _1e.selectingAmpm=_1e.ampm[0];
  100. _19(_1d);
  101. }).on("click.timepicker",".title-pm",function(e){
  102. _1e.selectingAmpm=_1e.ampm[1];
  103. _19(_1d);
  104. }).on("click.timepicker",".item",function(e){
  105. var _24=parseInt($(this).text(),10);
  106. if(_1e.selectingType=="hour"){
  107. _1e.selectingHour=_24;
  108. }else{
  109. _1e.selectingMinute=_24;
  110. }
  111. _19(_1d);
  112. });
  113. };
  114. function _22(_25){
  115. var _26=$(_25).data("timepicker").options;
  116. var _27=$(_25).combo("panel");
  117. var _28=_27.find(".timepicker-panel");
  118. var _29=_26.selectingHour;
  119. var _2a=_26.selectingMinute;
  120. $("<div class=\"panel-header f-noshrink f-row f-content-center\">"+"<div class=\"title title-hour\">"+(_29<10?"0"+_29:_29)+"</div>"+"<div class=\"sep\">:</div>"+"<div class=\"title title-minute\">"+(_2a<10?"0"+_2a:_2a)+"</div>"+"<div class=\"ampm f-column\">"+"<div class=\"title title-am\">"+_26.ampm[0]+"</div>"+"<div class=\"title title-pm\">"+_26.ampm[1]+"</div>"+"</div>"+"</div>").appendTo(_28);
  121. var _2b=_28.find(".panel-header");
  122. if(_26.selectingType=="hour"){
  123. _2b.find(".title-hour").addClass("title-selected");
  124. }else{
  125. _2b.find(".title-minute").addClass("title-selected");
  126. }
  127. if(_26.selectingAmpm==_26.ampm[0]){
  128. _2b.find(".title-am").addClass("title-selected");
  129. }
  130. if(_26.selectingAmpm==_26.ampm[1]){
  131. _2b.find(".title-pm").addClass("title-selected");
  132. }
  133. };
  134. function _23(_2c){
  135. var _2d=$(_2c).data("timepicker").options;
  136. var _2e=$(_2c).combo("panel");
  137. var _2f=_2e.find(".timepicker-panel");
  138. var _30=$("<div class=\"clock-wrap f-full f-column f-content-center\">"+"</div>").appendTo(_2f);
  139. var _31=_30.outerWidth();
  140. var _32=_30.outerHeight();
  141. var _33=Math.min(_31,_32)-20;
  142. var _34=_33/2;
  143. _31=_33;
  144. _32=_33;
  145. var _35=_2d.selectingType=="hour"?_2d.selectingHour:_2d.selectingMinute;
  146. var _36=_35/(_2d.selectingType=="hour"?12:60)*360;
  147. _36=parseFloat(_36).toFixed(4);
  148. var _37={transform:"rotate("+_36+"deg)"};
  149. var _38={width:_31+"px",height:_32+"px",marginLeft:-_31/2+"px",marginTop:-_32/2+"px"};
  150. var _39=[];
  151. _39.push("<div class=\"clock\">");
  152. _39.push("<div class=\"center\"></div>");
  153. _39.push("<div class=\"hand\">");
  154. _39.push("<div class=\"drag\"></div>");
  155. _39.push("</div>");
  156. var _3a=_3b();
  157. for(var i=0;i<_3a.length;i++){
  158. var _3c=_3a[i];
  159. var cls="item f-column f-content-center";
  160. if(_3c==_35){
  161. cls+=" item-selected";
  162. }
  163. var _36=_3c/(_2d.selectingType=="hour"?12:60)*360*Math.PI/180;
  164. var x=(_34-20)*Math.sin(_36);
  165. var y=-(_34-20)*Math.cos(_36);
  166. _36=parseFloat(_36).toFixed(4);
  167. x=parseFloat(x).toFixed(4);
  168. y=parseFloat(y).toFixed(4);
  169. var _3d={transform:"translate("+x+"px,"+y+"px)"};
  170. var _3d="transform:translate("+x+"px,"+y+"px)";
  171. _39.push("<div class=\""+cls+"\" style=\""+_3d+"\">"+_3c+"</div>");
  172. }
  173. _39.push("</div>");
  174. _30.html(_39.join(""));
  175. _30.find(".clock").css(_38);
  176. _30.find(".hand").css(_37);
  177. function _3b(){
  178. var _3e=[];
  179. if(_2d.selectingType=="hour"){
  180. for(var i=0;i<12;i++){
  181. _3e.push(String(i));
  182. }
  183. _3e[0]="12";
  184. }else{
  185. for(var i=0;i<60;i+=5){
  186. _3e.push(i<10?"0"+i:String(i));
  187. }
  188. _3e[0]="00";
  189. }
  190. return _3e;
  191. };
  192. };
  193. $.fn.timepicker=function(_3f,_40){
  194. if(typeof _3f=="string"){
  195. var _41=$.fn.timepicker.methods[_3f];
  196. if(_41){
  197. return _41(this,_40);
  198. }else{
  199. return this.combo(_3f,_40);
  200. }
  201. }
  202. _3f=_3f||{};
  203. return this.each(function(){
  204. var _42=$.data(this,"timepicker");
  205. if(_42){
  206. $.extend(_42.options,_3f);
  207. }else{
  208. $.data(this,"timepicker",{options:$.extend({},$.fn.timepicker.defaults,$.fn.timepicker.parseOptions(this),_3f)});
  209. }
  210. _1(this);
  211. });
  212. };
  213. $.fn.timepicker.methods={options:function(jq){
  214. var _43=jq.combo("options");
  215. return $.extend($.data(jq[0],"timepicker").options,{width:_43.width,height:_43.height,originalValue:_43.originalValue,disabled:_43.disabled,readonly:_43.readonly});
  216. },initValue:function(jq,_44){
  217. return jq.each(function(){
  218. var _45=$(this).timepicker("options");
  219. _45.value=_44;
  220. _13(this,_44);
  221. if(_44){
  222. _45.value=_14(this);
  223. $(this).combo("initValue",_45.value).combo("setText",_45.value);
  224. }
  225. });
  226. },setValue:function(jq,_46){
  227. return jq.each(function(){
  228. _f(this,_46);
  229. });
  230. },reset:function(jq){
  231. return jq.each(function(){
  232. var _47=$(this).timepicker("options");
  233. $(this).timepicker("setValue",_47.originalValue);
  234. });
  235. }};
  236. $.fn.timepicker.parseOptions=function(_48){
  237. return $.extend({},$.fn.combo.parseOptions(_48),$.parser.parseOptions(_48,[]));
  238. };
  239. $.fn.timepicker.defaults=$.extend({},$.fn.combo.defaults,{closeText:"Close",okText:"Ok",buttons:[{text:function(_49){
  240. return $(_49).timepicker("options").okText;
  241. },handler:function(_4a){
  242. $(_4a).timepicker("setValue",_14(_4a));
  243. $(this).closest("div.combo-panel").panel("close");
  244. }},{text:function(_4b){
  245. return $(_4b).timepicker("options").closeText;
  246. },handler:function(_4c){
  247. $(this).closest("div.combo-panel").panel("close");
  248. }}],editable:false,ampm:["am","pm"],value:"",selectingHour:12,selectingMinute:0,selectingType:"hour"});
  249. })(jQuery);