You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
390 lines
10 KiB
Plaintext
390 lines
10 KiB
Plaintext
/**
|
|
* jQuery EasyUI 1.4.5
|
|
*
|
|
* Copyright (c) 2009-2016 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>");
|
|
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+"\">");
|
|
for(var j=0;j<_38.length;j++){
|
|
var day=_38[j];
|
|
var s=day[0]+","+day[1]+","+day[2];
|
|
var _39=new Date(day[0],parseInt(day[1])-1,day[2]);
|
|
var d=_30.formatter.call(_2f,_39);
|
|
var css=_30.styler.call(_2f,_39);
|
|
var _3a="";
|
|
var _3b="";
|
|
if(typeof css=="string"){
|
|
_3b=css;
|
|
}else{
|
|
if(css){
|
|
_3a=css["class"]||"";
|
|
_3b=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+=" "+_3a;
|
|
if(!_30.validator.call(_2f,_39)){
|
|
cls+=" calendar-disabled";
|
|
}
|
|
_36.push("<td class=\""+cls+"\" abbr=\""+s+"\" style=\""+_3b+"\">"+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(_3c,_3d){
|
|
if(typeof _3c=="string"){
|
|
return $.fn.calendar.methods[_3c](this,_3d);
|
|
}
|
|
_3c=_3c||{};
|
|
return this.each(function(){
|
|
var _3e=$.data(this,"calendar");
|
|
if(_3e){
|
|
$.extend(_3e.options,_3c);
|
|
}else{
|
|
_3e=$.data(this,"calendar",{options:$.extend({},$.fn.calendar.defaults,$.fn.calendar.parseOptions(this),_3c)});
|
|
_6(this);
|
|
}
|
|
if(_3e.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,_3f){
|
|
return jq.each(function(){
|
|
_1(this,_3f);
|
|
});
|
|
},moveTo:function(jq,_40){
|
|
return jq.each(function(){
|
|
if(!_40){
|
|
var now=new Date();
|
|
$(this).calendar({year:now.getFullYear(),month:now.getMonth()+1,current:_40});
|
|
return;
|
|
}
|
|
var _41=$(this).calendar("options");
|
|
if(_41.validator.call(this,_40)){
|
|
var _42=_41.current;
|
|
$(this).calendar({year:_40.getFullYear(),month:_40.getMonth()+1,current:_40});
|
|
if(!_42||_42.getTime()!=_40.getTime()){
|
|
_41.onChange.call(this,_41.current,_42);
|
|
}
|
|
}
|
|
});
|
|
}};
|
|
$.fn.calendar.parseOptions=function(_43){
|
|
var t=$(_43);
|
|
return $.extend({},$.parser.parseOptions(_43,[{firstDay:"number",fit:"boolean",border:"boolean"}]));
|
|
};
|
|
$.fn.calendar.defaults={width:180,height:180,fit:false,border:true,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());
|
|
})(),formatter:function(_44){
|
|
return _44.getDate();
|
|
},styler:function(_45){
|
|
return "";
|
|
},validator:function(_46){
|
|
return true;
|
|
},onSelect:function(_47){
|
|
},onChange:function(_48,_49){
|
|
},onNavigate:function(_4a,_4b){
|
|
}};
|
|
})(jQuery);
|
|
|