2018-06-03 22:26:41 +08:00

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>"
}
}