Skip to content

Подсказки и подписи ​

English · Русский

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

Общие правила для всех подсказок и подписей: как описывается строка (label, order, hidden, template, transform), как выводятся даты, что подставляется вместо отсутствующего значения.

Главное ​

По умолчанию все секции пустые. Если не задать operationTooltipConfig, подсказка при наведении на операцию не покажет ничего; если не задать operationInfoConfig, внутри полос операций не будет текста. Исключений два: строка оборудования без настройки показывает название оборудования, а окно поставки — номер отслеживания каждого материала. Поэтому набор подсказок нужно задать явно; пример набора для основного графика приведён в конце страницы, наборы для панелей ограничений — на странице ограничений.

Все секции устроены одинаково: это объект, где ключ — путь к полю данных, а значение — описание строки.

json
{
  "operationTooltipConfig": {
    "name": { "label": "Операция", "order": 1 },
    "workOrder.number": { "label": "Номер заказа", "order": 2 },
    "workOrder.dueDate": { "label": "Срок", "template": "${label} — ${value}" }
  }
}

Если в расписании операция называется «Фрезеровка», её orderGuid указывает на заказ с номером З-104, а срок этого заказа — 2026-09-22T08:00:00.000Z, подсказка из примера покажет (откуда берётся workOrder, объясняет страница операций):

text
Операция: Фрезеровка
Номер заказа: З-104
Срок — 2026-09-22T08:00:00.000Z

Если заказ не найден, две последние строки будут Номер заказа: Не задан и Срок — Не задан. Настройка задаёт текст; данные операции и заказа передаёт приложение вместе с расписанием.

Описание строки ​

label ​

Подпись строки. Строка выводится как подпись: значение. Пустая подпись "" выводит одно значение без разделителя; так делают подписи внутри полосы операции.

  • Тип: строка, обязательна

order ​

Порядок строки, по возрастанию. Строки без order идут после всех остальных в порядке перечисления. Значения не обязаны идти подряд.

  • Тип: число

hidden ​

true скрывает строку. false и отсутствие ключа равнозначны. Скрытая строка полезна, когда поле нужно оставить в настройках, но не показывать.

  • Тип: логическое значение

template ​

Шаблон строки с подстановками. ${label} — подпись, ${value} — значение этого поля. Любое другое имя в ${...} читается как путь к полю той же записи: в подсказке операции строка "${value} (${workOrder.number})" подставит номер заказа. Если путь не найден, подставляется appSettings.undefinedTooltipText. Имена в подстановках состоят из букв, цифр, подчёркивания и точки. Если обработка шаблона выбрасывает исключение, строка выводится как подпись: значение. Нераспознанная подстановка, например ${workOrder-number}, остаётся обычным текстом.

  • Тип: строка

transform ​

Преобразование значения перед выводом. Это функция JavaScript, поэтому через данные задать нельзя. Без преобразования значение выводится как есть: true/false для признаков, ISO-строка для дат операций, системное представление даты для дат ограничений. Если приложение поддерживает декларативную замену (например, таблицу подстановки значений или формат даты), это описано в документации приложения.

appSettings.undefinedTooltipText ​

Текст вместо отсутствующего значения во всех секциях: в подсказках, подписях и подстановках шаблонов.

  • Тип: строка
  • По умолчанию: Не задан

Даты ​

Обработчик текста подсказки без transform преобразует значение в строку. Даты начала и окончания операций приходят в подсказку строками ISO в UTC, например 2026-03-12T05:00:00.000Z; срок заказа — как прислал сервер. Настройки appSettings.locale и appSettings.timezone на текст подсказок не влияют, пока у поля нет преобразования. Читаемый формат даты в подсказке доступен только через transform из кода приложения.

Секции ​

Где описана каждая секция:

СекцияЧто настраиваетСтраница
operationTooltipConfigПодсказка при наведении на полосу операцииОперации
operationInfoConfigТекст внутри полосы операцииОперации
equipmentInfoConfigСтрока оборудования в боковой панелиОбласть оборудования
supplyTooltipConfigОкно по щелчку на значке поставкиПоставки и заявки
flowArrowTooltipConfig, supplyArrowTooltipConfig, producerArrowTooltipConfigПодсказки на стрелках связейСтрелки связей
constraintsListInfoConfig, constraintsTooltipConfig, materialConstraintsListInfoConfig, materialConstraintsTooltipConfigСтроки списков и подсказки панелей ограниченийОграничения

Ограничения ​

  • График копирует конфигурацию при создании и запоминает построенные строки подсказок и подписей. Новые настройки подсказок действуют в новом экземпляре графика.
  • Ключи с точкой внутри имени поля (например, workOrder.number) — это путь во вложенный объект. Как записать такой путь в настройках приложения, чтобы точка не была разобрана как разделитель, объясняет документация приложения.

Пример набора для основного графика ​

Набор для явного включения подсказок и подписей основного графика и стрелок, без функций преобразования. Признак late выводится как true/false; если в данных нет locked, строка покажет «Не задан».

json
{
  "operationTooltipConfig": {
    "position": { "label": "№ опер." },
    "name": { "label": "Операция", "order": 1 },
    "startDate": { "label": "Начало", "order": 2 },
    "finishDate": { "label": "Завершение", "order": 3 },
    "setupFinishDate": { "label": "Завершение наладки", "template": "⚠ ${label} — ${value}" },
    "late": { "label": "Срыв срока" },
    "locked": { "label": "Статус" },
    "workOrder.number": { "label": "Номер заказа" },
    "workOrder.name": { "label": "Наименование заказа" },
    "workOrder.dueDate": { "label": "Срок" },
    "workOrder.quantity": { "label": "Количество" },
    "workOrder.priority": { "label": "Приоритет" }
  },
  "operationInfoConfig": {
    "name": { "label": "" },
    "position": { "label": "" },
    "startDate": { "label": "" },
    "finishDate": { "label": "" },
    "late": { "label": "" },
    "workOrder.priority": { "label": "" }
  },
  "equipmentInfoConfig": {
    "workUnitObjectName": { "label": "", "order": 1 }
  },
  "supplyTooltipConfig": {
    "date": { "label": "Дата поставки" },
    "trackingNumber": { "label": "Номер отслеживания" },
    "materialDefinitionItemId": { "label": "Обозначение" },
    "materialDefinitionName": { "label": "Наименование" },
    "materialDefinitionVersion": { "label": "Версия" },
    "quantity": { "label": "Доступное количество" },
    "materialDefinitionUOM": { "label": "ЕИ" }
  },
  "flowArrowTooltipConfig": {
    "fromOp.name": { "label": "От операции", "order": 1 },
    "fromOp.position": { "label": "№ от", "order": 3 },
    "fromOp.startDate": { "label": "Начало от", "order": 4 },
    "fromOp.finishDate": { "label": "Завершение от", "order": 5 },
    "fromOp.workOrder.number": { "label": "Заказ от", "order": 6 },
    "toOp.name": { "label": "К операции", "order": 10 },
    "toOp.position": { "label": "№ к", "order": 12 },
    "toOp.startDate": { "label": "Начало к", "order": 13 },
    "toOp.finishDate": { "label": "Завершение к", "order": 14 },
    "toOp.workOrder.number": { "label": "Заказ к", "order": 15 }
  },
  "supplyArrowTooltipConfig": {
    "quantity": { "label": "Количество", "order": 1 }
  },
  "producerArrowTooltipConfig": {
    "materialDefinitionName": { "label": "Материал", "order": 1 },
    "materialDefinitionItemId": { "label": "Обозначение", "order": 2 },
    "materialDefinitionUOM": { "label": "ЕИ", "order": 3 },
    "quantity": { "label": "Количество", "order": 4 }
  }
}