#javascript #fullcalendar #render #fullcalendar-scheduler #fullcalendar-5
#javascript #полнокалендарный #рендеринг #полнокалендарный планировщик #полный календарь-5
Вопрос:
Привет, ребята, я хочу разделить месяц на 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
Если вы хотите еще больше контролировать точный формат даты, вам нужно будет использовать один из плагинов, упомянутых в документации по форматированию даты.
Документация: