具有有效期的全日历营业时间
Posted
技术标签:
【中文标题】具有有效期的全日历营业时间【英文标题】:fullcalendar business hours with validity period 【发布时间】:2022-01-23 17:21:20 【问题描述】:我希望我的日历只允许用户在工作时间创建新事件。问题是每周的营业时间不一样,它们取决于日期。 我的营业时间表如下所示:
+-----+-----------+----------+------------+------------+
| day | startTime | endTime | firstDate | lastDate |
+-----+-----------+----------+------------+------------+
| 6 | 08:00:00 | 12:30:00 | 2021-12-20 | NULL |
| 6 | 13:00:00 | 16:30:00 | 2021-12-20 | NULL |
| 2 | 08:00:00 | 17:00:00 | 2021-12-27 | 2021-12-27 |
| 4 | 08:00:00 | 17:00:00 | 2021-12-29 | 2021-12-29 |
+-----+-----------+----------+------------+------------+
FullCalendar 中的营业时间没有指定有效期的选项。
我一直在研究使用后台事件,但不太明白如何以这种方式达到预期的结果。
如何将新事件限制在一周中每一天的特定时间,而这些时间每周都不同?
【问题讨论】:
后台事件是次优方法。你到底在哪里坚持呢? 后台事件只有开始和结束日期和时间。所以看来我必须编写代码来为它适用的日历中的每一天生成一个单独的背景事件。有没有更好的办法?另外我必须弄清楚如何只允许在这些背景事件之上而不是其他任何地方允许新事件。it seems that I would have to write code to generate a separate background event for each and every day in the calendar that it applies to
...是的,尽管您可以使用 fullCalendar 的重复事件功能来减少痛苦,可能。或者,如果营业时间根据可预测的时间表发生变化,您可以有一个脚本,根据一些预定义的规则为给定的日期范围生成事件。显然我对这里的真实场景一无所知。
fullcalendar.io/docs/selectOverlap 可以帮助您确保仅在后台事件之上创建事件 - 请参阅该链接中的示例。
谢谢,但除非我误解了使用 selectOverlap 的链接,否则需要创建涵盖除背景事件之外的所有内容的事件。我错过了什么吗?
【参考方案1】:
这让我们经常发生后台事件:
startTime: '08:00:00',
endTime: '12:30:00',
daysOfWeek: '6',
startRecur: '2021-12-20',
rendering: 'background',
groupId: 1
,
startTime: '13:00:00',
endTime: '16:30:00',
daysOfWeek: '6',
startRecur: '2021-12-20',
rendering: 'background',
groupId: 1
有关重复事件的更多信息,请参阅https://fullcalendar.io/docs/recurring-events
【讨论】:
以上是关于具有有效期的全日历营业时间的主要内容,如果未能解决你的问题,请参考以下文章