我正在将事件输入到 FullCalendar,但我遇到了每个事件跨越太多小时(或盒子)的问题。我需要每个事件都使用一个复选框以使其看起来更整洁。
这是我的事件 ID 的 JSON:
'{{ $hora->id }}', title: 'Paciente: {{ $hora->paciente_nombre." ".$hora->paciente_apellido }}
Profesional : {{ $hora->profesional_nombre." ".$hora->profesional_apellido }} ', start: moment('{{ $hora->fecha_hora }}').format('YYYY-MM-DD hh:mm'), backgroundColor: '{{ $hora->color }}',
问题是 FullCalendar 有一个
defaultTimedEventDuration
,这是 2 小时:由于您没有
end
在事件中指定参数,因此假定 2 小时的值作为事件的总持续时间:所以你有两个选择:
end
通过将参数的值加上 30 分钟来计算参数start
,使其使用某个函数仅占用一个单元格。更改
defaultTimedEventDuration
:flag 的作用
forceEventDuration
是强制计算end
.嗯,这就是现在想到的。
笔记
考虑到我提出的解决方案违背了 FullCalendar 的所有原始行为,这是正确的,也就是说,如果您没有指定事件有持续时间
allDay: true
是正确的,并且事件在发生时重叠也是正确的同时作为@Cesar 答案的补充,如果您想让它看起来不那么忙,但仍设置事件的实际持续时间(即在 1 小时 30 分钟的情况下不将事件设置为 30 分钟),您可以修改外观通过利用className选项。这样做的好处是将视觉问题从应用程序逻辑中移出。它允许事件占据与其持续时间成比例的空间。
解释:
.color
您在其中定义边框颜色并将背景设置为透明。.color .fc-content
您将文本区域的背景颜色和文本本身的颜色放在哪里。className
。例子: