data
Описание
Необязательный. Массив объектов, содержащих данные карточек
Использование
data: [
{
id: string | number,
title: string,
category?: string,
subtitle?: string,
details?: string,
preview?: string, // ссылка на изображение
price?: string,
review?: {
stars: number,
count: number
},
slots?: [
{
from: number | string, // часы от 0 до 24
to: number | string, // часы от 0 до 24
size?: number, // продолжительность слота в минутах
gap?: number, // промежуток между слотами в минутах
days?: array, // дни недели, для которых применяется правило, от 0 до 6
dates?: array, // конкретные даты, для которых применяется правило, метки времени
}
],
availableSlots?: [number, number][], // каждый слот: [метка времени, продолжительность слота в минутах]
usedSlots?: number[], //метки времени
slotSize?: number, //минуты
slotGap?: number //минуты
}
];
Параметры
Для каждого объекта карточки можно указать следующие параметры:
id- (обязательный) идентификатор карточкиtitle- (обязательный) заголовок карточки (например, имя специалиста)category- (необязательный) название категории карточки (например, должность специалиста)subtitle- (необязательный) подзаголовок карточкиdetails- (необязательный) дополнительные сведения о карточкеpreview- (необязательный) превью карточки — ссылка на изображение карточкиprice- (необязательный) стоимость услугиreview- (необязательный) информация о рейтинге, включающая следующие параметры:stars- (необязательный) количество звёзд рейтинга (из пяти)count- (необязательный) количество отзывов
slots- (необязательный) массив объектов, задающих правила слотов (для отображения доступных для бронирования временных промежутков необходимо указать либоslots, либоavailableSlots); каждый объект слота имеет следующие параметры:from- (обязательный) время начала слота в часах от 0 до 24to- (обязательный) время окончания слота в часах от 0 до 24size- (необязательный) продолжительность одного слота в минутахgap- (необязательный) промежуток между слотами в минутах; по умолчанию равен 0days- (необязательный) дни недели, когда слот доступен для бронирования; возможные значения: от 0 до 6, где 0 — воскресенье, а 6 — суббота; если дни не указаны, правило применяется ко всем дням по умолчанию; если дни указаны, для этих дней применяются параметры слота (to,from,size,gap), заданные для нихdates- (необязательный) массив меток времени в миллисекундах, указывающих конкретные даты, когда слот доступен; для этих конкретных дат применяются параметры слота (to,from,size,gap) (метки времени указываются в миллисекундах и должны представлять местное время)
примечание
Параметры слота, заданные для конкретных дней, переопределяют общие параметры, установленные для всех дней.
Параметры слота, заданные для конкретных дат, переопределяют параметры, установленные для отдельных дней и для всех дней.
Если несколько объектов слота нацелены на один и тот же день с разными значениями size или gap, их временные диапазоны (from–to) не должны пересекаться. При наличии перекрытия виджет пропускает все слоты для этого дня.
availableSlots- (необязательный) массив доступных слотов; каждый слот представляет собой массив[timestamp, duration], где метка времени указана в миллисекундах (представляет местное время), а продолжительность — длину слота в минутах; если здесь указаны доступные слоты, все слоты из массиваslotsигнорируются (то есть становятся недоступными)usedSlots- (необязательный) массив меток времени забронированных слотов в миллисекундах (метки времени указываются в миллисекундах и должны представлять местное время)slotSize- (необязательный) продолжительность слота в минутах; значение применяется ко всем слотам этой карточки, если иное значение не задано внутри объектаslots; по умолчанию установлено 60 минутslotGap- (необязательный) промежуток между слотами в минутах, устанавливаемый для всех слотов текущей карточки; это значение применяется, если иное не задано внутри объектаslots; по умолчанию равен 0
Пример
const data = [
{
id: "5cf364d8-9997-4d8c-9586-48f90f3cb736",
title: "Debra Weeks",
category: "Allergist",
subtitle: "7 years of experience",
details:
"Silverstone Medical Center (Vanderbilt Avenue 13, Chestnut, New Zealand)",
preview: "https://snippet.dhtmlx.com/codebase/data/booking/01/img/01.jpg",
price: "37 $",
review: {
stars: 1,
count: 40
},
slots: [
{
//общее правило слота для всех дней, кроме указанных в days и dates ниже
from: 14,
to: 17,
size: 30,
gap: 10
},
{
//это правило применяется к дням 2 и 5 (вторникам и пятницам), кроме
//пятницы из объекта слота ниже
from: 12,
to: 17,
size: 50,
gap: 20,
days: [2, 5]
},
{
//это правило применяется к дням 3 и 4 (средам и четвергам) и конкретной дате
from: 18,
to: 20,
size: 45,
gap: 20,
days: [3, 4],
dates: [ 1683234000000 ] // конкретная дата (5 мая 2023 года, пятница)
}
]
}
];
new booking.Booking("#root", {
data,
// другие параметры
});
Связанные статьи: Определение правил слотов