Fullcalendar resourceTimeGrid 月视图渲染

Posted

技术标签:

【中文标题】Fullcalendar resourceTimeGrid 月视图渲染【英文标题】:Fullcalendar resourceTimeGrid month view render 【发布时间】:2022-01-08 22:51:21 【问题描述】:

大家好,我想将一个月分成 4-5 周,以便每周有 7 天。我找不到在此视图中仅在当前周显示整个月的方法,因为您可以看到每周列包含实际的工作日,但我想用这个方案渲染整个月。

  this.calendarOptions = 
  headerToolbar: 
    left: '',
    center: 'title',
    right: 'prev next'
  ,
  defaultAllDay:false,
  aspectRatio: 2.45,
  editable: false,
  slotMinWidth: 75,
  selectable: false,
  eventClassNames: ['mt-1'],
  eventResourceEditable: false,
  eventOverlap: false,
  initialView: 'resourceTimeGridSevenDay',
  resourceLabelClassNames: ['p-0'],
  resourceGroupLabelContent: (arg) => 
    return html: `<strong>$arg.groupValue</strong> `;
  ,
  resourceLabelContent : (arg) => 
    return html: `<span> $arg.resource._resource.title</span> `;
  ,
  slotLabelContent: (arg) => 
    return html: ` `;
  ,

  eventClick: (arg) => 
    console.log('event click')
  ,
  now: new Date().toISOString(), 
  resourceAreaHeaderContent: 'Sponsor/Protocol',
  resourceAreaWidth: '10%',
  views: 
    resourceTimeGridSevenDay: 
      type: 'resourceTimeGrid',
      duration: days: 7,
      slotDuration:  weeks: 4 ,
    
  ,
  events: 'https://fullcalendar.io/demo-events.json?with-resources=2',
  fixedWeekCount: false,
  rerenderDelay: 2,
  progressiveEventRendering: true,
  
  showNonCurrentDates: false,
  initialDate: new Date().toISOString(),
 
  

【问题讨论】:

【参考方案1】:

我不确定您是否可以使用 fullCalendar 准确地创建您在屏幕截图中显示的内容,但可以相当接近,而且可能已经足够好了。

slotLabelFormat 设置的文档中,它提到对于时间线视图,它可以在标签区域中配置多行。

所以您仍然可以使用“月”视图来获取正确的天数,但要像这样设置插槽标签:

views: 
  resourceTimelineMonth: 
    slotLabelFormat: [
       week: 'long', , // top level of text
       weekday: 'short', day: '2-digit'  // lower level of text
    ],
  
,

它将周数显示为一年中的一周而不是一个月中的一周,日期格式相似但不完全相同(无论如何都会根据您的语言环境而有所不同)。

现场演示:https://codepen.io/ADyson82/pen/BawNMEp

如果您想更好地控制确切的日期格式,则需要使用日期格式文档中提到的插件之一。

文档:

slotLabelFormat Date Formatting

【讨论】:

以上是关于Fullcalendar resourceTimeGrid 月视图渲染的主要内容,如果未能解决你的问题,请参考以下文章

FullCalendar:如何重新创建/重新初始化 FullCalendar 或批量添加多个事件

css fullcalendar.css VS fullcalendar2.css

FullCalendar使用字符串

在FullCalendar中隐藏开始时间

FullCalendar日历插件

FullCalendar - 添加事件链接