Appearance
Подсказки и подписи
Настройки компонента @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 }
}
}