今天恰逢1024程序員節,祝包括自己在內的程序員們身體健康,收入多多!
用fullcalendar做了一個簡單的工作日和休息日的排班功能,因為現公司是大小休模式,即一周雙休一周單休。把是否上班設置為event的title,events從后台獲取:
1 //獲取數據后顯示在fullcalendar頁面 2 events: function(start, end, callback) { 3 var fstart = moment(start).format("yyyy-MM-dd"); 4 var fend = moment(end).format("yyyy-MM-dd"); 5 $.ajax({ 6 type: "post", 7 url: "/system/getWorkdayInfos", 8 dataType: "json", 9 data: { 10 start: fstart, 11 end: fend 12 }, 13 success: function(data) { 14 if (data.success) { 15 var events = []; 16 $.each(data.data, function(i) { 17 var status = data.data[i].workStatus==1?"班":"休"; 18 events.push({ 19 title: status, 20 start: moment(data.data[i].date).format("YYYY-MM-DD"), 21 end: moment(data.data[i].date).format("YYYY-MM-DD"), 22 allDay: true 23 }); 24 }); 25 callback(events); 26 } else { 27 alert(data.description); 28 } 29 } 30 }); 31 },
運行總是報錯:
搜索發現本人用的fullcalendar版本的events方法缺少一個參數:timezone,參考網頁:https://bbs.csdn.net/topics/392283087?mType=Group。添加該參數后,果然不再報錯。正確的events方法定義為:
events: function(start, end, timezone, callback) { ... }