📄 datepicker.js
字号:
},
MONTH:{
width:'16px'
},
CAPTION:{
'font-size':'12px',
'vertical-align':'middle'
},
MAINI:{
'padding-top':'4px',
'padding-bottom':'4px'
},
CON:{
'border-left':'solid 1px #648CB4',
'border-top':'solid 1px #648CB4'
},
BODY:{
overflow: 'visible'
},
'BODY td,BODY th':{
$order:1,
border:0,
'border-right':'solid 1px #648CB4',
'border-bottom':'solid 1px #648CB4'
},
'TD .exday':{
color:'#C1C1C1'
},
TD:{
'text-align':'center',
'background-color': '#EFF8FF'
},
'TD-free':{
$order:1,
'text-align':'center',
'background-color': '#F9F7D1'
},
'TD-mouseover':{
$order:3,
'background-color': '#d9e8fb'
},
'TD-checked':{
$order:4,
'background-color':'#316AC5',
'font-weight':'bold',
color:'#fff'
},
'W,H':{
$order:3,
'color':'#333333',
'background-color':'#E8EEF7',
'vertical-align':'middle',
'text-align':'center'
}
},
Behaviors:{
HoverEffected:{CLOSE:'CLOSE',TD:'TD',PRE:'PRE',PRE2:'PRE2',NEXT:'NEXT',NEXT2:'NEXT2',TODAY:'TODAY'},
ClickEffected:{CLOSE:'CLOSE',TD:'TD',PRE:'PRE',PRE2:'PRE2',NEXT:'NEXT',NEXT2:'NEXT2',TODAY:'TODAY'},
KEY:{onClick:function(){return false}},
TD:{
onClick:function(profile, e, src){
var p=profile.properties,
id=profile.getSubId(src.id),
map=profile.$daymap,
v=map[id];
if(p.disabled)return false;
linb([src]).onMouseout(true,{$force:true});
//onClick event
profile.boxing().setUIValue(v);
}
},
TODAY:{
onClick:function(profile){
profile.boxing().setUIValue(new Date,true);
}
},
CLOSE:{
onClick:function(profile, e, src){
var properties = profile.properties,
instance = profile.boxing();
if(properties.disabled)return;
if(false===instance.beforeClose(profile, src)) return;
instance.destroy();
//for design mode in firefox
return false;
}
},
PRE:{
onClick:function(profile, e, src){
var p = profile.properties;
if(p.disabled)return;
profile.box._to(profile, linb.Date.add(profile.$mfirst,'m',-1,p.WEEK_FIRST));
}
},
NEXT:{
onClick:function(profile, e, src){
var p = profile.properties;
if(p.disabled)return;
profile.box._to(profile, linb.Date.add(profile.$mfirst,'m',1,p.WEEK_FIRST));
}
},
PRE2:{
onClick:function(profile, e, src){
var p = profile.properties;
if(p.disabled)return;
profile.box._to(profile, linb.Date.add(profile.$mfirst,'y',-1,p.WEEK_FIRST));
}
},
NEXT2:{
onClick:function(profile, e, src){
var p = profile.properties;
if(p.disabled)return;
profile.box._to(profile, linb.Date.add(profile.$mfirst,'y',1,p.WEEK_FIRST));
}
},
YEAR:{
onMousedown:function(profile, e, src){
linb(src).startDrag(e, {
dragType:'blank',
targetReposition:false,
widthIncrement:20,
dragCursor:true
});
profile.$temp=profile.$temp2=0;
},
onDrag:function(profile, e, src){
var count,off = linb.DragDrop.getProfile().offset;
count=parseInt(profile.$year)+(profile.$temp2=parseInt(off.x/20));
if(profile.$temp!=count){
profile.$temp=count;
profile.getSubNode('YEAR').html(count,false);
}
},
onDragstop:function(profile, e, src){
if(profile.$temp2){
var p=profile.properties,
v = linb.Date.add(profile.$mfirst,'y',profile.$temp2,p.WEEK_FIRST);
profile.box._to(profile,linb.Date.getTimSpanStart(v,'m'));
}
profile.$temp=profile.$temp2=0;
}
},
MONTH:{
onMousedown:function(profile, e, src){
linb(src).startDrag(e, {
dragType:'blank',
targetReposition:false,
widthIncrement:20,
dragCursor:true
});
profile.$temp=profile.$temp2=0;
},
onDrag:function(profile, e, src){
var count,off = linb.DragDrop.getProfile().offset;
count=parseInt(profile.$month)+(parseInt(off.x/20)%12);
count=(count%12+12)%12;
if(profile.$temp!=count){
profile.$temp=count;
profile.$temp2=count-profile.$month+1;
profile.getSubNode('MONTH').html(count+1,false);
}
},
onDragstop:function(profile, e, src){
if(profile.$temp2){
var p=profile.properties,
v = linb.Date.add(profile.$mfirst,'m',profile.$temp2,p.WEEK_FIRST);
profile.box._to(profile,linb.Date.getTimSpanStart(v,'m'));
}
profile.$temp=profile.$temp2=0;
}
}
},
DataModel:{
height:{
ini:'auto',
readonly:true
},
width:{
ini:210,
readonly:true
},
value:new Date,
closeBtn:{
ini:true,
action:function(v){
this.getSubNode('CLOSE').css('display',v?'':'none');
}
},
$borderW:1
},
EventHandlers:{
beforeClose:function(profile, src){}
},
_prepareData:function(profile){
var data=arguments.callee.upper.call(this, profile);
var nodisplay='display:none';
data.closeDisplay = data.closeBtn?'':nodisplay;
return data;
},
RenderTrigger:function(){
var self=this, p=self.properties, o=self.boxing(), b=self.box;
b._setWeekLabel(self);
// self.getSubNode('YTXT').html(linb.wrapRes('date.Y'),false);
// self.getSubNode('MTXT').html(linb.wrapRes('date.M'),false);
},
_getWeekNodes:function(profile){
return profile.$week || (profile.$week=profile.getSubNode('W',true));
},
_getTDNodes:function(profile){
return profile.$tds || (profile.$tds=profile.getSubNode('TD',true));
},
_getLabelNodes:function(profile){
return profile.$day || (profile.$day=profile.getSubNode('TD',true));
},
_getHeaderNodes:function(profile){
return profile.$header || (profile.$header=profile.getSubNode('H',true));
},
_setWeekLabel:function(profile){
var o=linb.Date,f=profile.getSubId;
profile.box._getHeaderNodes(profile).each(function(node,i){
node.innerHTML=linb.wrapRes('date.WEEKS.'+f(node.id))
});
},
_setBGV:function(profile, v, m){
var date=linb.Date,
p=profile.properties,
daymap=profile.$daymap||(profile.$daymap=[]),
t,n,
fd=p.WEEK_FIRST;
profile.box._getLabelNodes(profile).each(function(node,i){
n=date.add(v,'d',i,fd);
daymap[i]=n;
t=date.get(n,'m',fd)==m?'#':'<p class="exday">#</p>';
n=date.get(n,'d',fd);
node.innerHTML = t.replace('#',n);
});
profile.box._getWeekNodes(profile).each(function(node,i){
node.innerHTML=date.get(date.add(v,'ww',i,fd),'ww',fd);
});
},
_to:function(profile, mfirst, value){
var p = profile.properties,
fd=p.WEEK_FIRST,
date=linb.Date,
keys=profile.keys,
uiv=value||p.$UIvalue,
md=date.get(uiv,'m',fd)+'-'+date.get(uiv,'d',fd),
ym1=date.get(uiv,'y',fd)+'-'+date.get(uiv,'m',fd),
ym2=date.get(mfirst,'y',fd)+'-'+date.get(mfirst,'m',fd),
index=-1,
node,
temp,
_realstart = date.getTimSpanStart(date.getTimSpanStart(mfirst,'m'),'ww',1,fd),
m=date.get(mfirst,'m',fd);
profile.$mfirst=mfirst;
this._setBGV(profile, profile._realstart=_realstart, m);
//remove checked css class
if(profile.$selnode)
profile.$selnode.tagClass('-checked',false);
if(ym1==ym2){
_.arr.each(profile.$daymap,function(o,i){
if(date.get(o,'m',fd)+'-'+date.get(o,'d',fd)==md){
index=i;
return false;
}
});
node=this._getTDNodes(profile).get()[index];
(profile.$selnode=linb([node]).tagClass('-checked'));
}
if(keys.YEAR){
temp=date.get(mfirst,'y',fd);
if(profile.$year!=temp){
profile.$year=temp;
profile.getSubNode('YEAR').html(temp,false);
}
}
if(keys.MONTH){
temp=date.get(mfirst,'m',fd)+1;
if(profile.$month!=temp){
profile.$month=temp;
profile.getSubNode('MONTH').html(temp,false);
}
}
},
_onresize:function(){}
}
});
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -