294 lines
9.7 KiB
JavaScript
294 lines
9.7 KiB
JavaScript
// JavaScript Document
|
|
Date.prototype.Format = function (fmt) { //author: meizz
|
|
var o = {
|
|
"M+": this.getMonth() + 1, //月份
|
|
"d+": this.getDate(), //日
|
|
"h+": this.getHours(), //小时
|
|
"m+": this.getMinutes(), //分
|
|
"s+": this.getSeconds(), //秒
|
|
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
|
"S": this.getMilliseconds() //毫秒
|
|
};
|
|
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
for (var k in o)
|
|
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
|
return fmt;
|
|
}
|
|
var Maincalendar=function(userId){
|
|
this.curUser=userId;
|
|
this.calendarBody=$("#main_calendar_body");
|
|
this.calendarMonth=$("#main_select_month");
|
|
this.calendarYear=$("#main_select_year");
|
|
this.monthLeft=$("#main_calendar_left");
|
|
this.monthRight=$("#main_calendar_right");
|
|
this.calendarTable=$("#main_calendar_table tbody");
|
|
this.mainCalendar=$("#main_calendar");//当前的日期对象
|
|
this.mainSelectYearMonth=$("#id_main_select_month");//选择月和年对象
|
|
this.curMonth=0; //当前月
|
|
this.curYear=0; //当前年
|
|
this.curDate=0; //当前日期
|
|
this.startWeek=0; //当前月开始星期几
|
|
this.monthDatas=0; //当前月天数
|
|
this.curcalendar=null;
|
|
this.workRecord={};//当前工作记录
|
|
this.getWorkRecord();
|
|
this.initcalendar();
|
|
this.showCurMonthDatas();
|
|
this.addOrSubMonthFun();
|
|
}
|
|
Maincalendar.prototype.reload=function(){
|
|
this.getWorkRecord();
|
|
this.initcalendar();
|
|
this.showCurMonthDatas();
|
|
this.addOrSubMonthFun();
|
|
}
|
|
Maincalendar.prototype.initcalendar=function(){
|
|
var myDate = new Date();
|
|
this.curcalendar=myDate;
|
|
this.initDataInfo();
|
|
}
|
|
Maincalendar.prototype.initDataInfo=function(){
|
|
this.curYear=this.curcalendar.getFullYear();
|
|
this.curMonth=this.curcalendar.getMonth();
|
|
this.curDate=this.curcalendar.getDate();
|
|
this.calendarMonth.text((this.curMonth+1)+"月");
|
|
this.calendarYear.text(this.curYear);
|
|
}
|
|
Maincalendar.prototype.showCurMonthDatas=function(){
|
|
var date = (this.curMonth+1)+"/01/"+this.curYear;
|
|
var day = new Date(Date.parse(date));
|
|
var tempWeek=day.getDay();
|
|
if(tempWeek==0){this.startWeek=6}else{this.startWeek=tempWeek-1;}
|
|
var day = new Date(this.curYear,this.curMonth,0);
|
|
this.monthDatas=day.getDate();
|
|
var realSart=0-this.startWeek+1;
|
|
var realEnd= this.monthDatas+(7-(this.monthDatas-(7-this.startWeek+1))%7)-1;
|
|
var tempTr=$("<tr></tr>")
|
|
var cindex=0;
|
|
$("#main_calendar_table tbody").html("");
|
|
for(var i=realSart;i<=realEnd;i++){
|
|
if(i<=0||i>this.monthDatas){
|
|
tempTr.append($("<td></td>"))
|
|
}else{
|
|
|
|
var curData=this.getFormateDate(this.curYear,this.curMonth,i,"/");
|
|
var holiday=this.getSpecialDay(this.curYear,this.curMonth+1);
|
|
var stype=holiday[i]||"";
|
|
var showData=this.getSpecialDayShow(stype);
|
|
var showStyle="";
|
|
if(showData.length>0){showStyle="padding-right:10px;"};
|
|
if(this.workRecord[curData]){
|
|
var recode=this.workRecord[curData];
|
|
tempTr.append($("<td id='main_cur_date"+i+"' style='color:red;"+showStyle+"' serialNo='"+recode.serialNo+"' title='"+recode.WorkBrief+"'>"+i+"</td>"))
|
|
}else{
|
|
|
|
tempTr.append($("<td id='main_cur_date"+i+"' style='"+showStyle+"'>"+i+showData+"</td>"));
|
|
}
|
|
|
|
}
|
|
cindex=cindex+1;
|
|
if(cindex==7){
|
|
cindex=0;
|
|
this.calendarTable.append(tempTr);
|
|
tempTr=$("<tr></tr>");
|
|
}
|
|
}
|
|
this.setCurData(this.curYear,this.curMonth);
|
|
this.setSelectDataFunction();
|
|
}
|
|
Maincalendar.prototype.getFormateDate=function(sYear,sMonth,sDate,sSplit){
|
|
sMonth=(sMonth+1)+"";
|
|
sDate=sDate+"";
|
|
if(sMonth.length==1){sMonth="0"+sMonth;}
|
|
if(sDate.length==1){sDate="0"+sDate;}
|
|
return sYear+sSplit+sMonth+sSplit+sDate;
|
|
}
|
|
Maincalendar.prototype.setSelectDataFunction=function(){
|
|
var curCalender=this;
|
|
$("#main_calendar_table>tbody>tr>td").bind("click",function(){
|
|
var cmonth=(curCalender.curMonth+1)+"";
|
|
var cdate=$(this).text()+"";
|
|
if(cdate!=""){
|
|
if(cmonth.length==1){cmonth="0"+cmonth;}
|
|
if(cdate.length==1){cdate="0"+cdate;}
|
|
var seriaNo=$(this).attr("serialNo")||"";
|
|
// AsControl.OpenNewWin("/DeskTop/WorkRecordInfo.jsp",, "");
|
|
var sUrl = "/DeskTop/WorkRecordInfo.jsp";
|
|
AsDialog.PopView(sUrl,"SerialNo="+seriaNo+"&NoteType=All","resizable=yes;dialogWidth=1000px;dialogHeight=500px;center:yes;status:no;statusbar:no",function(){
|
|
var tempCalender=curCalender;
|
|
tempCalender.reload();
|
|
},"工作记录");
|
|
}
|
|
});
|
|
}
|
|
Maincalendar.prototype.setCurData=function(year,month){
|
|
var myDate = new Date();
|
|
var curYear=myDate.getFullYear();
|
|
var curMonth=myDate.getMonth();
|
|
var curDate=myDate.getDate();
|
|
if(curYear==year && curMonth==month){
|
|
$("#main_cur_date"+curDate).addClass("main_cur_data");
|
|
}
|
|
}
|
|
Maincalendar.prototype.subMonth=function(){
|
|
var curMonth=this.curMonth-1;
|
|
console.info(curMonth);
|
|
if(curMonth>=0){
|
|
this.curcalendar=new Date(this.curYear,curMonth,"01");
|
|
}else{
|
|
this.curcalendar=new Date(this.curYear-1,"11","01");
|
|
}
|
|
this.initDataInfo();
|
|
this.showCurMonthDatas();
|
|
}
|
|
Maincalendar.prototype.addMonth=function(){
|
|
var curMonth=this.curMonth+1;
|
|
console.info(curMonth);
|
|
if(curMonth<=11){
|
|
this.curcalendar=new Date(this.curYear,curMonth,"01");
|
|
console.info(this.curcalendar.Format("yyyy-MM-dd"));
|
|
}else{
|
|
this.curcalendar=new Date(this.curYear+1,"00","01");
|
|
console.info(this.curcalendar.Format("yyyy-MM-dd"));
|
|
}
|
|
this.initDataInfo();
|
|
this.showCurMonthDatas();
|
|
}
|
|
Maincalendar.prototype.addOrSubMonthFun=function(){
|
|
var curcalendar=this;
|
|
$("#main_calendar_left").click(function () {
|
|
curcalendar.subMonth();
|
|
});
|
|
$("#main_calendar_right").click(function(){
|
|
curcalendar.addMonth();
|
|
});
|
|
$("#main_month_year").click(function(){
|
|
curcalendar.selectMonthAndYear();
|
|
});
|
|
}
|
|
Maincalendar.prototype.selectMonthAndYear=function(){
|
|
this.mainCalendar.hide();
|
|
this.setSelectMonthValue(this.curYear);
|
|
this.mainSelectYearMonth.show();
|
|
}
|
|
Maincalendar.prototype.setSelectMonthValue=function(curYear){
|
|
$("#main_select_cur_year").text(curYear);
|
|
var months=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];
|
|
var selectTable=$("#id_main_select_month tbody");
|
|
selectTable.empty();
|
|
var tr=$("<tr></tr>")
|
|
var dindex=0;
|
|
for(var i=0;i<months.length;i++){
|
|
tr.append($("<td cindex='"+i+"'>"+months[i]+"</td>"))
|
|
dindex++;
|
|
if(dindex==4){
|
|
selectTable.append(tr);
|
|
tr=$("<tr></tr>");
|
|
dindex=0;
|
|
}
|
|
}
|
|
var curCalendar=this;
|
|
$('#main_select_year_left').unbind("click");
|
|
$('#main_select_year_right').unbind("click");
|
|
$("#main_select_year_left").click(function(){
|
|
var curyear=$("#main_select_cur_year").text();
|
|
curyear=parseInt(curyear)-1;
|
|
$("#main_select_cur_year").text(curyear);
|
|
}
|
|
)
|
|
$("#main_select_year_right").click(function(){
|
|
var curyear=$("#main_select_cur_year").text();
|
|
curyear=parseInt(curyear)+1;
|
|
$("#main_select_cur_year").text(curyear);
|
|
}
|
|
)
|
|
$("#main_select_cur_year").click(function(){
|
|
curCalendar.setSelectYearValue();
|
|
})
|
|
$("#id_main_select_month td").click(function(){
|
|
var month=$(this).attr("cindex");
|
|
curCalendar.mainSelectYearMonth.hide();
|
|
curCalendar.curcalendar=new Date($("#main_select_cur_year").text(),month,"01");
|
|
curCalendar.initDataInfo();
|
|
curCalendar.showCurMonthDatas();
|
|
curCalendar.mainCalendar.show();
|
|
});
|
|
}
|
|
Maincalendar.prototype.setSelectYearValue=function(){
|
|
var curYear=$("#main_select_cur_year").text();
|
|
var startYear=0;
|
|
var endYear=0;
|
|
if(curYear.indexOf("-")>0){
|
|
startYear=parseInt(curYear.split("-")[0]);
|
|
endYear=parseInt(curYear.split("-")[1]);
|
|
}else{
|
|
curYear=parseInt(curYear);
|
|
startYear=curYear-6;
|
|
endYear=startYear+11;
|
|
}
|
|
var selectTable=$("#id_main_select_month tbody");
|
|
selectTable.empty();
|
|
var tr=$("<tr></tr>")
|
|
var dindex=0;
|
|
for(var i=startYear;i<=endYear;i++){
|
|
tr.append($("<td cindex='"+i+"'>"+i+"</td>"))
|
|
dindex++;
|
|
if(dindex==4){
|
|
selectTable.append(tr);
|
|
tr=$("<tr></tr>");
|
|
dindex=0;
|
|
}
|
|
}
|
|
$("#main_select_cur_year").text(startYear+"-"+endYear);
|
|
var curCalendertemp=this;
|
|
$("#id_main_select_month td").click(function(){
|
|
var year=$(this).attr("cindex");
|
|
curCalendertemp.setSelectMonthValue(year);
|
|
});
|
|
$('#main_select_year_left').unbind("click");
|
|
$('#main_select_year_right').unbind("click");
|
|
$("#main_select_year_left").click(function(){
|
|
var curYear=$("#main_select_cur_year").text();
|
|
var startYear=0;
|
|
var endYear=0;
|
|
startYear=parseInt(curYear.split("-")[0]);
|
|
endYear=parseInt(curYear.split("-")[1]);
|
|
endYear=startYear;
|
|
startYear=startYear-11;
|
|
$("#main_select_cur_year").text(startYear+"-"+endYear);
|
|
curCalendertemp.setSelectYearValue();
|
|
}
|
|
);
|
|
$("#main_select_year_right").click(function(){
|
|
var curYear=$("#main_select_cur_year").text();
|
|
var startYear=0;
|
|
var endYear=0;
|
|
startYear=parseInt(curYear.split("-")[0]);
|
|
endYear=parseInt(curYear.split("-")[1]);
|
|
startYear=endYear+1;
|
|
endYear=startYear+11;
|
|
$("#main_select_cur_year").text(startYear+"-"+endYear);
|
|
curCalendertemp.setSelectYearValue();
|
|
}
|
|
);
|
|
|
|
}
|
|
Maincalendar.prototype.getWorkRecord=function(){
|
|
var strWorkRecode =RunJavaMethodTrans("com.tenwa.homepage.HomeWorkRecode","getWorkRecode","curUser="+this.curUser);
|
|
this.workRecord=strWorkRecode;
|
|
}
|
|
Maincalendar.prototype.getSpecialDay=function(year,month){
|
|
var strSpecialDay =RunJavaMethodTrans("com.tenwa.homepage.HomeWorkRecode","getSpecialDay","curYear="+year+",curMonth="+month);
|
|
return strSpecialDay;
|
|
}
|
|
Maincalendar.prototype.getSpecialDayShow=function(otype){
|
|
if(otype==""){
|
|
return ""
|
|
}else if(otype=="班"){
|
|
return "<span class='main_day_work'>班</span>"
|
|
}else{
|
|
return "<span class='main_day_holiday'>休</span>"
|
|
}
|
|
|
|
|
|
} |