Skip to content

Пример настройки: оборудование цеха ​

English · Русский

Настройки компонента @mes/aps@1.23.0. В MES имена записей Settings начинаются с schedule.; см. как заполнить запись.

Задача — показать расписание оборудования без полос поставок и заявок, оставить штриховку недоступности, подписать операции и при наведении показать название операции, номер заказа и время. Пустое оборудование не должно занимать строки.

Это полный объект пользовательских настроек для данной задачи. Он относится к конфигурации GanttChart; служебные значения uuid и webWorker добавляет код приложения. Если у приложения свой формат настроек, эти же ключи записываются по его правилам: объект не вставляют вместо всей конфигурации.

Что передаёт приложение ​

Разработчик встраивает компонент. Приложение получает расписание из своего API и передаёт его в schedules: операции — в scheduledOperations, заказы — в workOrders. Чтобы строка «Номер заказа» показала номер, orderGuid операции должен совпадать с guid заказа.

Приложение объединяет объект ниже со значениями по умолчанию пакета и передаёт результат в config.

Объект настроек ​

json
{
  "sidebarWidth": 200,
  "hideEmptyUnits": true,
  "swapLayers": false,
  "showConstraints": false,
  "showMaterialConstraints": false,
  "barSettings": {
    "initialWidth": 40,
    "maxInitialWidth": 160
  },
  "precisionYGantt": {
    "minSize": 30,
    "maxSize": 200,
    "steps": 20
  },
  "appSettings": {
    "locale": "ru-RU",
    "timezone": "UTC",
    "undefinedTooltipText": "Не задан",
    "splitter": {
      "enableSplitter": true,
      "minWidth": 150,
      "maxWidth": 450
    },
    "equipmentAreaSettings": {
      "ganttTitle": "Оборудование цеха",
      "showSupply": false,
      "showRequest": false,
      "showAvailability": true,
      "showAdjustment": true,
      "showTerminator": true
    },
    "drawPreferences": {
      "labelTextFont": "arial",
      "labelTextFontSize": 14,
      "useLabelEllipsis": true
    }
  },
  "equipmentInfoConfig": {
    "workUnitObjectName": { "label": "", "order": 1 }
  },
  "operationInfoConfig": {
    "name": { "label": "", "order": 1 },
    "workOrder.number": { "label": "", "order": 2 }
  },
  "operationTooltipConfig": {
    "name": { "label": "Операция", "order": 1 },
    "workOrder.number": { "label": "Номер заказа", "order": 2 },
    "startDate": { "label": "Начало", "order": 3 },
    "finishDate": { "label": "Завершение", "order": 4 }
  }
}

Какой результат проверить ​

После передачи расписания график подбирает горизонтальный масштаб. Максимальная базовая ширина деления при подгонке — 160 пикселей. Высота строк меняется ползунком из 20 положений; нижняя граница 30 пикселей действует при достаточной высоте поля, верхняя ограничена 200 пикселями и высотой поля. Эти значения относятся к одному уровню строки: у оборудования с finite: false строка выше, см. шкалу времени и масштаб.

Слева видны названия оборудования под заголовком «Оборудование цеха». Строк без запланированных операций нет. Полосы поставок и заявок не занимают место. Штриховка недоступности и полосы наладки остаются там, где соответствующие данные есть в расписании.

Для примера возьмём операцию «Фрезеровка», связанную с заказом З-104, с началом 2026-09-22T08:00:00.000Z и окончанием 2026-09-22T10:00:00.000Z. Если полоса достаточно широка и строка достаточно высока, в полосе будут две подписи — «Фрезеровка» и З-104. Сколько строк помещается по высоте, объясняет страница операций: при размере шрифта 14 для двух строк нужна базовая высота строки не меньше 72 пикселей, а при нижней границе 30 пикселей подписей в полосе нет. При наведении:

text
Операция: Фрезеровка
Номер заказа: З-104
Начало: 2026-09-22T08:00:00.000Z
Завершение: 2026-09-22T10:00:00.000Z

Замените названия, номер и даты значениями из своего расписания. Пакет выводит даты строками из данных: locale и timezone их не форматируют. Если заказ отсутствует, строка номера покажет «Не задан». Для узкой полосы подпись может обрезаться; подробности — на странице операций.

Изменить этот вариант ​