calendar2.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  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>&nbsp;已达标,获取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. $(".calendar_record").click(function(){
  51. //ajax获取日历json数据
  52. //alert(typeof(signList)+"yxy");
  53. //var signList=[{"signDay":"10"},{"signDay":"11"},{"signDay":"12"},{"signDay":"13"}];
  54. //var tmp = {"signDay":$(this).html()};
  55. //if (typeof(signList) == 'undefined'){
  56. //不做处理
  57. //}else{
  58. // signList.splice('','',tmp);
  59. // console.log(signList);
  60. // calUtil.init(signList);
  61. // }
  62. //alert($(this).html());
  63. var tmp = {"signDay":$(this).html()};
  64. calUtil.init(signList,tmp);
  65. });
  66. },
  67. //获取当前选择的年月
  68. setMonthAndDay:function(){
  69. switch(calUtil.eventName)
  70. {
  71. case "load":
  72. var current = new Date();
  73. calUtil.showYear=current.getFullYear();
  74. calUtil.showMonth=current.getMonth() + 1;
  75. break;
  76. case "prev":
  77. var nowMonth=$(".calendar_month_span").html().split("年")[1].split("月")[0];
  78. calUtil.showMonth=parseInt(nowMonth)-1;
  79. if(calUtil.showMonth==0)
  80. {
  81. calUtil.showMonth=12;
  82. calUtil.showYear-=1;
  83. }
  84. break;
  85. case "next":
  86. var nowMonth=$(".calendar_month_span").html().split("年")[1].split("月")[0];
  87. calUtil.showMonth=parseInt(nowMonth)+1;
  88. if(calUtil.showMonth==13)
  89. {
  90. calUtil.showMonth=1;
  91. calUtil.showYear+=1;
  92. }
  93. break;
  94. }
  95. },
  96. getDaysInmonth : function(iMonth, iYear){
  97. var dPrevDate = new Date(iYear, iMonth, 0);
  98. return dPrevDate.getDate();
  99. },
  100. bulidCal : function(iYear, iMonth) {
  101. var aMonth = new Array();
  102. aMonth[0] = new Array(7);
  103. aMonth[1] = new Array(7);
  104. aMonth[2] = new Array(7);
  105. aMonth[3] = new Array(7);
  106. aMonth[4] = new Array(7);
  107. aMonth[5] = new Array(7);
  108. aMonth[6] = new Array(7);
  109. var dCalDate = new Date(iYear, iMonth - 1, 1);
  110. var iDayOfFirst = dCalDate.getDay();
  111. var iDaysInMonth = calUtil.getDaysInmonth(iMonth, iYear);
  112. var iVarDate = 1;
  113. var d, w;
  114. aMonth[0][0] = "日";
  115. aMonth[0][1] = "一";
  116. aMonth[0][2] = "二";
  117. aMonth[0][3] = "三";
  118. aMonth[0][4] = "四";
  119. aMonth[0][5] = "五";
  120. aMonth[0][6] = "六";
  121. for (d = iDayOfFirst; d < 7; d++) {
  122. aMonth[1][d] = iVarDate;
  123. iVarDate++;
  124. }
  125. for (w = 2; w < 7; w++) {
  126. for (d = 0; d < 7; d++) {
  127. if (iVarDate <= iDaysInMonth) {
  128. aMonth[w][d] = iVarDate;
  129. iVarDate++;
  130. }
  131. }
  132. }
  133. return aMonth;
  134. },
  135. ifHasSigned : function(signList,day){
  136. var signed = false;
  137. $.each(signList,function(index,item){
  138. if(item.signDay == day) {
  139. signed = true;
  140. return false;
  141. }
  142. });
  143. return signed ;
  144. },
  145. drawCal : function(iYear, iMonth ,signList) {
  146. var myMonth = calUtil.bulidCal(iYear, iMonth);
  147. var htmls = new Array();
  148. htmls.push("<div class='sign_main' id='sign_layer'>");
  149. htmls.push("<div class='sign_succ_calendar_title'>");
  150. //htmls.push("<div class='calendar_month_next'>下月</div>");
  151. //htmls.push("<div class='calendar_month_prev'>上月</div>");
  152. htmls.push("<div class='calendar_month_span'></div>");
  153. htmls.push("</div>");
  154. htmls.push("<div class='sign_equal' id='sign_cal'>");
  155. htmls.push("<div class='sign_row'>");
  156. htmls.push("<div class='th_1 bold'>" + myMonth[0][0] + "</div>");
  157. htmls.push("<div class='th_2 bold'>" + myMonth[0][1] + "</div>");
  158. htmls.push("<div class='th_3 bold'>" + myMonth[0][2] + "</div>");
  159. htmls.push("<div class='th_4 bold'>" + myMonth[0][3] + "</div>");
  160. htmls.push("<div class='th_5 bold'>" + myMonth[0][4] + "</div>");
  161. htmls.push("<div class='th_6 bold'>" + myMonth[0][5] + "</div>");
  162. htmls.push("<div class='th_7 bold'>" + myMonth[0][6] + "</div>");
  163. htmls.push("</div>");
  164. var d, w;
  165. for (w = 1; w < 6; w++) {
  166. htmls.push("<div class='sign_row'>");
  167. for (d = 0; d < 7; d++) {
  168. var ifHasSigned = calUtil.ifHasSigned(signList,myMonth[w][d]);
  169. console.log("001:"+ifHasSigned);
  170. if(ifHasSigned && typeof(myMonth[w][d]) != 'undefined'){
  171. htmls.push("<div class='td_"+d+" on'>" + (!isNaN(myMonth[w][d]) ? myMonth[w][d] : " ") + "</div>");
  172. } else {
  173. htmls.push("<div class='td_"+d+" calendar_record'>" + (!isNaN(myMonth[w][d]) ? myMonth[w][d] : " ") + "</div>");
  174. }
  175. }
  176. htmls.push("</div>");
  177. }
  178. htmls.push("</div>");
  179. htmls.push("</div>");
  180. htmls.push("</div>");
  181. return htmls.join('');
  182. }
  183. };