- 1 var calUtil = {
- 2 //当前日历显示的年份
- 3 showYear:2015,
- 4 //当前日历显示的月份
- 5 showMonth:1,
- 6 //当前日历显示的天数
- 7 showDays:1,
- 8 eventName:"load",
- 9 //初始化日历
- 10 init:function(signList,s=''){
- 11 calUtil.setMonthAndDay();
- 12 if (typeof(s) == 'undefined'){
- 13 }else{
- 14 signList.splice('','',s);
- 15 }
- 16 calUtil.draw(signList);
- 17 calUtil.bindEnvent(signList);
- 18 },
- 19 draw:function(signList){
- 20 //绑定日历
- 21 //alert(signList.length);
- 22 // console.log(signList);
- 23 if(signList.length > 21){
- 24 //alert(21);
- 25 $("#sign_note").empty();
- 26 $("#sign_note").html('<button class="sign_contener" type="button"><i class="fa fa-calendar-check-o" aria-hidden="true"></i> 已达标,获取1次抽奖</button>');
- 27 }
- 28 var str = calUtil.drawCal(calUtil.showYear,calUtil.showMonth,signList);
- 29 $("#calendar").html(str);
- 30 //绑定日历表头
- 31 var calendarName=calUtil.showYear+"/"+calUtil.showMonth+"";
- 32 $(".calendar_month_span").html(calendarName);
- 33 },
- 34 //绑定事件
- 35 bindEnvent:function(signList){
- 36 // //绑定上个月事件
- 37 // $(".calendar_month_prev").click(function(){
- 38 // //ajax获取日历json数据
- 39 // //var signList=[{"signDay":"10"},{"signDay":"11"},{"signDay":"12"},{"signDay":"13"}];
- 40 // calUtil.eventName="prev";
- 41 // calUtil.init(signList);
- 42 // });
- 43 // //绑定下个月事件
- 44 // $(".calendar_month_next").click(function(){
- 45 // //ajax获取日历json数据
- 46 // //var signList=[{"signDay":"10"},{"signDay":"11"},{"signDay":"12"},{"signDay":"13"}];
- 47 // calUtil.eventName="next";
- 48 // calUtil.init(signList);
- 49 // });
- 50
- 51 $(".calendar_record").click(function(){
- 52 //ajax获取日历json数据
- 53 // console(typeof(signList)+"yxy");
- 54 //var signList=[{"signDay":"10"},{"signDay":"11"},{"signDay":"12"},{"signDay":"13"}];
- 55 //var tmp = {"signDay":$(this).html()};
- 56 //if (typeof(signList) == 'undefined'){
- 57 //不做处理
- 58 //}else{
- 59 // signList.splice('','',tmp);
- 60 // console.log(signList);
- 61 // calUtil.init(signList);
- 62 // }
- 63 //alert($(this).html());
- 64 var tmp = {"signDay":$(this).html()};
- 65 console.log(tmp.signDay)
- 66
- 67 // if(tmp.signDay==11){
- 68 //执行签到
- 69 $.ajax({
- 70 type:'POST',
- 71 url:"checksign.html",
- 72 data:{day:tmp.signDay},
- 73 dataType:'json',
- 74 success:function(res){
- 75 // if(res.result==1){
- 76 // calUtil.init(signList,tmp);
- 77 // }else{
- 78 alert(res.msg);
- 79 location.reload(true);
- 80 // }
- 81
- 82 }
- 83 })
- 84
- 85 // }else{
- 86 // alert("请签到当天日期")
- 87 // }
- 88 });
- 89 },
- 90 //获取当前选择的年月
- 91 setMonthAndDay:function(){
- 92 switch(calUtil.eventName)
- 93 {
- 94 case "load":
- 95 var current = new Date();
- 96 calUtil.showYear=current.getFullYear();
- 97 calUtil.showMonth=current.getMonth() + 1;
- 98 break;
- 99 case "prev":
- 100 var nowMonth=$(".calendar_month_span").html().split("年")[1].split("月")[0];
- 101 calUtil.showMonth=parseInt(nowMonth)-1;
- 102 if(calUtil.showMonth==0)
- 103 {
- 104 calUtil.showMonth=12;
- 105 calUtil.showYear-=1;
- 106 }
- 107 break;
- 108 case "next":
- 109 var nowMonth=$(".calendar_month_span").html().split("年")[1].split("月")[0];
- 110 calUtil.showMonth=parseInt(nowMonth)+1;
- 111 if(calUtil.showMonth==13)
- 112 {
- 113 calUtil.showMonth=1;
- 114 calUtil.showYear+=1;
- 115 }
- 116 break;
- 117 }
- 118 },
- 119 getDaysInmonth : function(iMonth, iYear){
- 120 var dPrevDate = new Date(iYear, iMonth, 0);
- 121 return dPrevDate.getDate();
- 122 },
- 123 bulidCal : function(iYear, iMonth) {
- 124 var aMonth = new Array();
- 125 aMonth[0] = new Array(7);
- 126 aMonth[1] = new Array(7);
- 127 aMonth[2] = new Array(7);
- 128 aMonth[3] = new Array(7);
- 129 aMonth[4] = new Array(7);
- 130 aMonth[5] = new Array(7);
- 131 aMonth[6] = new Array(7);
- 132 var dCalDate = new Date(iYear, iMonth - 1, 1);
- 133 var iDayOfFirst = dCalDate.getDay();
- 134 var iDaysInMonth = calUtil.getDaysInmonth(iMonth, iYear);
- 135 var iVarDate = 1;
- 136 var d, w;
- 137 aMonth[0][0] = "日";
- 138 aMonth[0][1] = "一";
- 139 aMonth[0][2] = "二";
- 140 aMonth[0][3] = "三";
- 141 aMonth[0][4] = "四";
- 142 aMonth[0][5] = "五";
- 143 aMonth[0][6] = "六";
- 144 for (d = iDayOfFirst; d < 7; d++) {
- 145 aMonth[1][d] = iVarDate;
- 146 iVarDate++;
- 147 }
- 148 for (w = 2; w < 7; w++) {
- 149 for (d = 0; d < 7; d++) {
- 150 if (iVarDate <= iDaysInMonth) {
- 151 aMonth[w][d] = iVarDate;
- 152 iVarDate++;
- 153 }
- 154 }
- 155 }
- 156 return aMonth;
- 157 },
- 158 ifHasSigned : function(signList,day){
- 159 var signed = false;
- 160 $.each(signList,function(index,item){
- 161 if(item.signDay == day) {
- 162 signed = true;
- 163 return false;
- 164 }
- 165 });
- 166 return signed ;
- 167 },
- 168 drawCal : function(iYear, iMonth ,signList) {
- 169 var myMonth = calUtil.bulidCal(iYear, iMonth);
- 170 var htmls = new Array();
- 171 htmls.push("<div class='sign_main' id='sign_layer'>");
- 172 htmls.push("<div class='sign_succ_calendar_title'>");
- 173 //htmls.push("<div class='calendar_month_next'>下月</div>");
- 174 //htmls.push("<div class='calendar_month_prev'>上月</div>");
- 175 htmls.push("<div class='calendar_month_span'></div>");
- 176 htmls.push("</div>");
- 177 htmls.push("<div class='sign_equal' id='sign_cal'>");
- 178 htmls.push("<div class='sign_row'>");
- 179 htmls.push("<div class='th_1 bold'>" + myMonth[0][0] + "</div>");
- 180 htmls.push("<div class='th_2 bold'>" + myMonth[0][1] + "</div>");
- 181 htmls.push("<div class='th_3 bold'>" + myMonth[0][2] + "</div>");
- 182 htmls.push("<div class='th_4 bold'>" + myMonth[0][3] + "</div>");
- 183 htmls.push("<div class='th_5 bold'>" + myMonth[0][4] + "</div>");
- 184 htmls.push("<div class='th_6 bold'>" + myMonth[0][5] + "</div>");
- 185 htmls.push("<div class='th_7 bold'>" + myMonth[0][6] + "</div>");
- 186 htmls.push("</div>");
- 187 var d, w;
- 188 for (w = 1; w < 6; w++) {
- 189 htmls.push("<div class='sign_row'>");
- 190 for (d = 0; d < 7; d++) {
- 191
- 192 var ifHasSigned = calUtil.ifHasSigned(signList,myMonth[w][d]);
- 193 console.log("001:"+ifHasSigned);
- 194 if(ifHasSigned && typeof(myMonth[w][d]) != 'undefined'){
- 195 htmls.push("<div class='td_"+d+" on'>" + (!isNaN(myMonth[w][d]) ? myMonth[w][d] : " ") + "</div>");
- 196 } else {
- 197 htmls.push("<div class='td_"+d+" calendar_record'>" + (!isNaN(myMonth[w][d]) ? myMonth[w][d] : " ") + "</div>");
- 198 }
- 199 }
- 200 htmls.push("</div>");
- 201 }
- 202 htmls.push("</div>");
- 203 htmls.push("</div>");
- 204 htmls.push("</div>");
- 205 return htmls.join('');
- 206 }
- 207 };
- 208