今天恰逢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) { ... }