Appearance
Calendar
Точные имена Settings, типы и примеры приведены в справочнике календаря. Руководство по Settings показывает, как создать запись.
Назначение
Панель calendar показывает рабочий календарь одного объекта, выбранного в другом месте приложения.
Когда использовать
Используйте Calendar для доступности, назначений, статусов и шаблонов одного ресурса или оборудования в дневном, недельном или месячном виде. Для полного производственного расписания нужен Гант, для обычного списка объектов — таблица.
Предварительные условия и границы ответственности
- Событие
request.getSelectedObjectForEventIdдолжно передать GUID выбранного объекта. - Панель запрашивает Calendar API для видимого диапазона дат.
- Адаптер отвечает за ожидание выбора, нормализацию дат API, даты запросов с явным смещением, настройки и сохранение вида/даты на время сеанса.
@mes/aps-calendar@0.6.0отображаетWorkingCalendarи применяет настройки компонента.
Карта возможностей
| Область | Поведение |
|---|---|
| Выбор | Компонент появляется, когда указанное событие передаёт GUID объекта |
| Виды | День, неделя и месяц из пакета |
| Данные | Панель получает назначения для диапазона, который запрашивает пакет |
| Смена объекта | Панель создаёт календарь заново |
| Сеанс | Сохраняет выбранную дату и вид при смене объекта |
| Даты | Даты ответа нормализуются в UTC Z, даты запроса сохраняют явное смещение |
| Settings | Панель собирает calendar.* и задаёт разрешённый часовой пояс |
Модель поведения
Панель получает GUID выбранного объекта и передаёт его WorkingCalendar. Пакет запрашивает видимый интервал; хранилище панели вызывает Calendar API и возвращает данные компоненту. При смене объекта панель читает текущие вид и дату из компонента и восстанавливает их в новом экземпляре.
Варианты, значения по умолчанию и приоритеты
- Корректный
calendar.settings.timezoneимеет приоритет. - Без него панель использует IANA-зону браузера; если её определить нельзя —
UTC. - Компонент читает локаль, рабочие часы и форматы внутри
settings. По умолчанию этоru-RU,00:00–25:00и часы/минуты из двух цифр. Полные имена начинаются сcalendar.settings.. - При повторном создании компонента сохранённые в сеансе вид/дата имеют приоритет над начальными настройками.
- Справочник объясняет параметры компонента и свойства данных/состояния, которые через Settings задавать не нужно.
Ограничения
- Без выбранного объекта панель пуста; отдельного поля с его GUID в JSON панели нет.
- Объявленные
panelActionsтекущая обёртка Calendar не отображает. - Часовой пояс влияет на форматирование и часть границ дня, но в пакете остаются расчёты через локальный браузерный
Date. - Сохранённые вид и дата общие для Calendar в сеансе браузера; они не хранятся отдельно для каждого приложения или объекта.
Минимальная конфигурация
json
{
"id": "equipment-calendar",
"type": "calendar",
"request": {
"getSelectedObjectForEventId": "equipment--selected"
}
}Сценарий: календарь выбранного оборудования
json
{
"version": "1.0.0",
"panel": {
"id": "equipment-calendar-workspace",
"type": "group",
"groupLayout": { "type": "columns", "resizable": true },
"panels": [
{
"id": "equipment",
"type": "table",
"request": { "metaTypeName": "Equipment" },
"columns": [
{ "attribute": "name", "label": "Оборудование" }
],
"pagination": { "rowsPerPage": [10] },
"selectionMode": "single",
"events": [
{
"id": "equipment--selected",
"name": "onObjectSelect",
"actions": [
{ "name": "addSelectedObjectToRequest" }
]
}
]
},
{
"id": "equipment-calendar",
"type": "calendar",
"request": {
"getSelectedObjectForEventId": "equipment--selected"
}
}
]
}
}После выбора оборудования появляется его календарь. Если сменить вид или дату и выбрать другую строку, новый объект откроется в том же виде и на той же дате. В этом примере Equipment — имя типа для вашего набора оборудования; используйте существующий в вашей среде MetaType.
Демонстрационные сценарии
Открыть общие сценарии конфигуратораВо вкладке Calendar выберите заказ. Панель создаёт виджет с GUID этого заказа. Изменение диапазона вызывает обработчик настоящего виджета и запрос хранилища POST /Calendar/GetCalendarAssignments; локальный API возвращает статусы и шаблоны в формате пакета для запрошенного интервала.
Для сравнения настроек часового пояса:
Открыть общий профиль с часовым поясом браузера Открыть общий профиль с явно заданным UTCЭти сценарии Ганта предоставляют общие профили Settings. Выбор объекта и получение данных календаря показывает сценарий Calendar выше.
Точный справочник параметров
- Событие выбора, на английском.
- Объявленные, но не отображаемые действия, на английском.
- Часовой пояс, на английском.
- Граница настроек пакета, на английском.
Связанные руководства
- Гант.
- Справочник настроек Calendar.
- События и условия, на английском.
- Общая конфигурация панели, на английском.
Для своего приложения свяжите событие выбора объекта с панелью Calendar, затем задайте нужные записи из справочника Settings.