Skip to content

Calendar ​

English · Русский

Точные имена 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, затем задайте нужные записи из справочника Settings.