我注意到这个问题被问了几次,但没有实际的正确答案或良好的反馈来引导正确的道路。
我在用全日历 https://fullcalendar.io/javascript 插件并尝试添加每天多个事件的总小时数,然后我将在每天的页眉或页脚中显示总和。
我尝试了许多不同的方法来完成此任务,但最接近结果的是使用以下代码:
eventAfterRender: function(event, element, view) {
if (event.totalhrs > 0) {
var sd = event.startdate;
if (dateTotal.hasOwnProperty(sd)) {
dateTotal[event.startdate] = (dateTotal[event.startdate] + +event.totalhrs);
} else {
dateTotal[event.startdate] = +(event.totalhrs);
}
$(".fc-day-top[data-date='"+event.startdate+"']").find('.fc-dailytotal').text(dateTotal[event.startdate]);
}
}
这在第一次渲染日历时有效,但如果有事件更改,它会继续添加总计,错误地显示非常高的值。我明白为什么它错误地添加了总数(dateTotal[event.startdate] + +event.totalhrs)
但我希望有人能帮助指导我朝着正确的方向取得正确的结果。
感谢任何反馈/帮助。
我想出了一种替代方法来完成这项工作,而无需使用包含每天总和的日期数组。我希望这对那些和我一样一直在寻找的人有所帮助。
请记住,此示例仅适用于月视图...需要进行一些调整才能使其适用于周/日视图。
此外,该活动还必须有一个总小时数对象用于求和。您将在下面看到这一点事件.totalhrs
viewRender: function(view, element) {
$.each($(".fc-day-top"), function(key, val) {
var dateYMD = $(this).attr("data-date");
$(this).append("<div class='fc-dailytotal' id='dailytotal-"+dateYMD+"'></div>");
});
},
eventRender: function(event, element, view) {
$(".fc-dailytotal").text(0); //Clear total sum
},
eventAfterRender: function(event, element, view) {
var currentday = moment(event.start).format("YYYY-MM-DD");
if (event.totalhrs > 0) {
var prev = $("#dailytotal-"+currentday).text() || 0;
$("#dailytotal-"+currentday).text(+prev + +event.totalhrs);
}
}
您也可以使用此方法来计算每周总计。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)