123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403 |
- /**
- * EasyUI for jQuery 1.6.10
- *
- * Copyright (c) 2009-2018 www.jeasyui.com. All rights reserved.
- *
- * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
- * To use it on other terms please contact us: info@jeasyui.com
- *
- */
- (function($){
- function _1(_2,_3){
- var _4=$.data(_2,"calendar").options;
- var t=$(_2);
- if(_3){
- $.extend(_4,{width:_3.width,height:_3.height});
- }
- t._size(_4,t.parent());
- t.find(".calendar-body")._outerHeight(t.height()-t.find(".calendar-header")._outerHeight());
- if(t.find(".calendar-menu").is(":visible")){
- _5(_2);
- }
- };
- function _6(_7){
- $(_7).addClass("calendar").html("<div class=\"calendar-header\">"+"<div class=\"calendar-nav calendar-prevmonth\"></div>"+"<div class=\"calendar-nav calendar-nextmonth\"></div>"+"<div class=\"calendar-nav calendar-prevyear\"></div>"+"<div class=\"calendar-nav calendar-nextyear\"></div>"+"<div class=\"calendar-title\">"+"<span class=\"calendar-text\"></span>"+"</div>"+"</div>"+"<div class=\"calendar-body\">"+"<div class=\"calendar-menu\">"+"<div class=\"calendar-menu-year-inner\">"+"<span class=\"calendar-nav calendar-menu-prev\"></span>"+"<span><input class=\"calendar-menu-year\" type=\"text\"></input></span>"+"<span class=\"calendar-nav calendar-menu-next\"></span>"+"</div>"+"<div class=\"calendar-menu-month-inner\">"+"</div>"+"</div>"+"</div>");
- $(_7).bind("_resize",function(e,_8){
- if($(this).hasClass("easyui-fluid")||_8){
- _1(_7);
- }
- return false;
- });
- };
- function _9(_a){
- var _b=$.data(_a,"calendar").options;
- var _c=$(_a).find(".calendar-menu");
- _c.find(".calendar-menu-year").unbind(".calendar").bind("keypress.calendar",function(e){
- if(e.keyCode==13){
- _d(true);
- }
- });
- $(_a).unbind(".calendar").bind("mouseover.calendar",function(e){
- var t=_e(e.target);
- if(t.hasClass("calendar-nav")||t.hasClass("calendar-text")||(t.hasClass("calendar-day")&&!t.hasClass("calendar-disabled"))){
- t.addClass("calendar-nav-hover");
- }
- }).bind("mouseout.calendar",function(e){
- var t=_e(e.target);
- if(t.hasClass("calendar-nav")||t.hasClass("calendar-text")||(t.hasClass("calendar-day")&&!t.hasClass("calendar-disabled"))){
- t.removeClass("calendar-nav-hover");
- }
- }).bind("click.calendar",function(e){
- var t=_e(e.target);
- if(t.hasClass("calendar-menu-next")||t.hasClass("calendar-nextyear")){
- _f(1);
- }else{
- if(t.hasClass("calendar-menu-prev")||t.hasClass("calendar-prevyear")){
- _f(-1);
- }else{
- if(t.hasClass("calendar-menu-month")){
- _c.find(".calendar-selected").removeClass("calendar-selected");
- t.addClass("calendar-selected");
- _d(true);
- }else{
- if(t.hasClass("calendar-prevmonth")){
- _10(-1);
- }else{
- if(t.hasClass("calendar-nextmonth")){
- _10(1);
- }else{
- if(t.hasClass("calendar-text")){
- if(_c.is(":visible")){
- _c.hide();
- }else{
- _5(_a);
- }
- }else{
- if(t.hasClass("calendar-day")){
- if(t.hasClass("calendar-disabled")){
- return;
- }
- var _11=_b.current;
- t.closest("div.calendar-body").find(".calendar-selected").removeClass("calendar-selected");
- t.addClass("calendar-selected");
- var _12=t.attr("abbr").split(",");
- var y=parseInt(_12[0]);
- var m=parseInt(_12[1]);
- var d=parseInt(_12[2]);
- _b.current=new Date(y,m-1,d);
- _b.onSelect.call(_a,_b.current);
- if(!_11||_11.getTime()!=_b.current.getTime()){
- _b.onChange.call(_a,_b.current,_11);
- }
- if(_b.year!=y||_b.month!=m){
- _b.year=y;
- _b.month=m;
- _19(_a);
- }
- }
- }
- }
- }
- }
- }
- }
- });
- function _e(t){
- var day=$(t).closest(".calendar-day");
- if(day.length){
- return day;
- }else{
- return $(t);
- }
- };
- function _d(_13){
- var _14=$(_a).find(".calendar-menu");
- var _15=_14.find(".calendar-menu-year").val();
- var _16=_14.find(".calendar-selected").attr("abbr");
- if(!isNaN(_15)){
- _b.year=parseInt(_15);
- _b.month=parseInt(_16);
- _19(_a);
- }
- if(_13){
- _14.hide();
- }
- };
- function _f(_17){
- _b.year+=_17;
- _19(_a);
- _c.find(".calendar-menu-year").val(_b.year);
- };
- function _10(_18){
- _b.month+=_18;
- if(_b.month>12){
- _b.year++;
- _b.month=1;
- }else{
- if(_b.month<1){
- _b.year--;
- _b.month=12;
- }
- }
- _19(_a);
- _c.find("td.calendar-selected").removeClass("calendar-selected");
- _c.find("td:eq("+(_b.month-1)+")").addClass("calendar-selected");
- };
- };
- function _5(_1a){
- var _1b=$.data(_1a,"calendar").options;
- $(_1a).find(".calendar-menu").show();
- if($(_1a).find(".calendar-menu-month-inner").is(":empty")){
- $(_1a).find(".calendar-menu-month-inner").empty();
- var t=$("<table class=\"calendar-mtable\"></table>").appendTo($(_1a).find(".calendar-menu-month-inner"));
- var idx=0;
- for(var i=0;i<3;i++){
- var tr=$("<tr></tr>").appendTo(t);
- for(var j=0;j<4;j++){
- $("<td class=\"calendar-nav calendar-menu-month\"></td>").html(_1b.months[idx++]).attr("abbr",idx).appendTo(tr);
- }
- }
- }
- var _1c=$(_1a).find(".calendar-body");
- var _1d=$(_1a).find(".calendar-menu");
- var _1e=_1d.find(".calendar-menu-year-inner");
- var _1f=_1d.find(".calendar-menu-month-inner");
- _1e.find("input").val(_1b.year).focus();
- _1f.find("td.calendar-selected").removeClass("calendar-selected");
- _1f.find("td:eq("+(_1b.month-1)+")").addClass("calendar-selected");
- _1d._outerWidth(_1c._outerWidth());
- _1d._outerHeight(_1c._outerHeight());
- _1f._outerHeight(_1d.height()-_1e._outerHeight());
- };
- function _20(_21,_22,_23){
- var _24=$.data(_21,"calendar").options;
- var _25=[];
- var _26=new Date(_22,_23,0).getDate();
- for(var i=1;i<=_26;i++){
- _25.push([_22,_23,i]);
- }
- var _27=[],_28=[];
- var _29=-1;
- while(_25.length>0){
- var _2a=_25.shift();
- _28.push(_2a);
- var day=new Date(_2a[0],_2a[1]-1,_2a[2]).getDay();
- if(_29==day){
- day=0;
- }else{
- if(day==(_24.firstDay==0?7:_24.firstDay)-1){
- _27.push(_28);
- _28=[];
- }
- }
- _29=day;
- }
- if(_28.length){
- _27.push(_28);
- }
- var _2b=_27[0];
- if(_2b.length<7){
- while(_2b.length<7){
- var _2c=_2b[0];
- var _2a=new Date(_2c[0],_2c[1]-1,_2c[2]-1);
- _2b.unshift([_2a.getFullYear(),_2a.getMonth()+1,_2a.getDate()]);
- }
- }else{
- var _2c=_2b[0];
- var _28=[];
- for(var i=1;i<=7;i++){
- var _2a=new Date(_2c[0],_2c[1]-1,_2c[2]-i);
- _28.unshift([_2a.getFullYear(),_2a.getMonth()+1,_2a.getDate()]);
- }
- _27.unshift(_28);
- }
- var _2d=_27[_27.length-1];
- while(_2d.length<7){
- var _2e=_2d[_2d.length-1];
- var _2a=new Date(_2e[0],_2e[1]-1,_2e[2]+1);
- _2d.push([_2a.getFullYear(),_2a.getMonth()+1,_2a.getDate()]);
- }
- if(_27.length<6){
- var _2e=_2d[_2d.length-1];
- var _28=[];
- for(var i=1;i<=7;i++){
- var _2a=new Date(_2e[0],_2e[1]-1,_2e[2]+i);
- _28.push([_2a.getFullYear(),_2a.getMonth()+1,_2a.getDate()]);
- }
- _27.push(_28);
- }
- return _27;
- };
- function _19(_2f){
- var _30=$.data(_2f,"calendar").options;
- if(_30.current&&!_30.validator.call(_2f,_30.current)){
- _30.current=null;
- }
- var now=new Date();
- var _31=now.getFullYear()+","+(now.getMonth()+1)+","+now.getDate();
- var _32=_30.current?(_30.current.getFullYear()+","+(_30.current.getMonth()+1)+","+_30.current.getDate()):"";
- var _33=6-_30.firstDay;
- var _34=_33+1;
- if(_33>=7){
- _33-=7;
- }
- if(_34>=7){
- _34-=7;
- }
- $(_2f).find(".calendar-title span").html(_30.months[_30.month-1]+" "+_30.year);
- var _35=$(_2f).find("div.calendar-body");
- _35.children("table").remove();
- var _36=["<table class=\"calendar-dtable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"];
- _36.push("<thead><tr>");
- if(_30.showWeek){
- _36.push("<th class=\"calendar-week\">"+_30.weekNumberHeader+"</th>");
- }
- for(var i=_30.firstDay;i<_30.weeks.length;i++){
- _36.push("<th>"+_30.weeks[i]+"</th>");
- }
- for(var i=0;i<_30.firstDay;i++){
- _36.push("<th>"+_30.weeks[i]+"</th>");
- }
- _36.push("</tr></thead>");
- _36.push("<tbody>");
- var _37=_20(_2f,_30.year,_30.month);
- for(var i=0;i<_37.length;i++){
- var _38=_37[i];
- var cls="";
- if(i==0){
- cls="calendar-first";
- }else{
- if(i==_37.length-1){
- cls="calendar-last";
- }
- }
- _36.push("<tr class=\""+cls+"\">");
- if(_30.showWeek){
- var _39=_30.getWeekNumber(new Date(_38[0][0],parseInt(_38[0][1])-1,_38[0][2]));
- _36.push("<td class=\"calendar-week\">"+_39+"</td>");
- }
- for(var j=0;j<_38.length;j++){
- var day=_38[j];
- var s=day[0]+","+day[1]+","+day[2];
- var _3a=new Date(day[0],parseInt(day[1])-1,day[2]);
- var d=_30.formatter.call(_2f,_3a);
- var css=_30.styler.call(_2f,_3a);
- var _3b="";
- var _3c="";
- if(typeof css=="string"){
- _3c=css;
- }else{
- if(css){
- _3b=css["class"]||"";
- _3c=css["style"]||"";
- }
- }
- var cls="calendar-day";
- if(!(_30.year==day[0]&&_30.month==day[1])){
- cls+=" calendar-other-month";
- }
- if(s==_31){
- cls+=" calendar-today";
- }
- if(s==_32){
- cls+=" calendar-selected";
- }
- if(j==_33){
- cls+=" calendar-saturday";
- }else{
- if(j==_34){
- cls+=" calendar-sunday";
- }
- }
- if(j==0){
- cls+=" calendar-first";
- }else{
- if(j==_38.length-1){
- cls+=" calendar-last";
- }
- }
- cls+=" "+_3b;
- if(!_30.validator.call(_2f,_3a)){
- cls+=" calendar-disabled";
- }
- _36.push("<td class=\""+cls+"\" abbr=\""+s+"\" style=\""+_3c+"\">"+d+"</td>");
- }
- _36.push("</tr>");
- }
- _36.push("</tbody>");
- _36.push("</table>");
- _35.append(_36.join(""));
- _35.children("table.calendar-dtable").prependTo(_35);
- _30.onNavigate.call(_2f,_30.year,_30.month);
- };
- $.fn.calendar=function(_3d,_3e){
- if(typeof _3d=="string"){
- return $.fn.calendar.methods[_3d](this,_3e);
- }
- _3d=_3d||{};
- return this.each(function(){
- var _3f=$.data(this,"calendar");
- if(_3f){
- $.extend(_3f.options,_3d);
- }else{
- _3f=$.data(this,"calendar",{options:$.extend({},$.fn.calendar.defaults,$.fn.calendar.parseOptions(this),_3d)});
- _6(this);
- }
- if(_3f.options.border==false){
- $(this).addClass("calendar-noborder");
- }
- _1(this);
- _9(this);
- _19(this);
- $(this).find("div.calendar-menu").hide();
- });
- };
- $.fn.calendar.methods={options:function(jq){
- return $.data(jq[0],"calendar").options;
- },resize:function(jq,_40){
- return jq.each(function(){
- _1(this,_40);
- });
- },moveTo:function(jq,_41){
- return jq.each(function(){
- if(!_41){
- var now=new Date();
- $(this).calendar({year:now.getFullYear(),month:now.getMonth()+1,current:_41});
- return;
- }
- var _42=$(this).calendar("options");
- if(_42.validator.call(this,_41)){
- var _43=_42.current;
- $(this).calendar({year:_41.getFullYear(),month:_41.getMonth()+1,current:_41});
- if(!_43||_43.getTime()!=_41.getTime()){
- _42.onChange.call(this,_42.current,_43);
- }
- }
- });
- }};
- $.fn.calendar.parseOptions=function(_44){
- var t=$(_44);
- return $.extend({},$.parser.parseOptions(_44,["weekNumberHeader",{firstDay:"number",fit:"boolean",border:"boolean",showWeek:"boolean"}]));
- };
- $.fn.calendar.defaults={width:180,height:180,fit:false,border:true,showWeek:false,firstDay:0,weeks:["S","M","T","W","T","F","S"],months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],year:new Date().getFullYear(),month:new Date().getMonth()+1,current:(function(){
- var d=new Date();
- return new Date(d.getFullYear(),d.getMonth(),d.getDate());
- })(),weekNumberHeader:"",getWeekNumber:function(_45){
- var _46=new Date(_45.getTime());
- _46.setDate(_46.getDate()+4-(_46.getDay()||7));
- var _47=_46.getTime();
- _46.setMonth(0);
- _46.setDate(1);
- return Math.floor(Math.round((_47-_46)/86400000)/7)+1;
- },formatter:function(_48){
- return _48.getDate();
- },styler:function(_49){
- return "";
- },validator:function(_4a){
- return true;
- },onSelect:function(_4b){
- },onChange:function(_4c,_4d){
- },onNavigate:function(_4e,_4f){
- }};
- })(jQuery);
|