Appearance
Ограничения
Настройки компонента @mes/aps@1.23.0. В MES имена записей Settings начинаются с schedule.; см. как заполнить запись.
Панели вторичных ограничений и движения материалов под основным полем: когда они показаны, как подписаны, что выводится в их строках и подсказках. Описание строки (label, order, hidden, template) такое же, как на странице подсказок и подписей. Высоту строк панелей задаёт вертикальный масштаб (precisionYConstraints, см. шкалу времени и масштаб), высоту заголовка панели — appSettings.UISettings.secondHeaderHeight (см. размеры и раскладку), цвета слоёв превышения и максимума и их приглушение — lateItemColor и inactiveElementsColor (см. внешний вид; панель движения материалов эти цвета не использует). В строках списков и подсказках обеих панелей гарантируются только перечисленные поля.
Видимость панелей
Под основным полем есть одна область. В ней показывается панель вторичных ограничений, иначе панель движения материалов, иначе то, что подставило приложение (например, список незапланированных операций).
showConstraints
Показывает панель вторичных ограничений при открытии графика. Пока панель показана, ползунки горизонтальной прокрутки и масштаба переезжают в неё.
- Тип: логическое значение
- По умолчанию:
false - Взаимодействие: имеет приоритет над
showMaterialConstraints: если обаtrue, панель движения материалов не показывается. Приложение может переключать панели на работающем графике.
showMaterialConstraints
Показывает панель движения материалов при открытии графика.
- Тип: логическое значение
- По умолчанию:
false
Заголовки и меню
constraintsDisplaySettings.title, materialConstraintsDisplaySettings.title
Заголовок соответствующей панели.
- Тип: строка
- По умолчанию:
Вторичные ограничения,Движение материалов
constraintsDisplaySettings.menuShowConstraintsLabel, materialConstraintsDisplaySettings.menuShowConstraintsLabel
Текст пункта контекстного меню строки ограничения, который подсвечивает использующие его операции.
- Тип: строка
- По умолчанию:
Показать/Скрыть использующие операции
Ключи minValLabel и maxValLabel в обеих секциях объявлены (по умолчанию Мин, Макс), но не используются: подписи минимума и максимума задаются в строках списка через constraintsListInfoConfig и materialConstraintsListInfoConfig.
График ограничения
appSettings.constraints.paddingTop
Отступ в пикселях сверху графика вторичного ограничения, чтобы пик кривой не касался верхнего края. Уменьшает область построения: масштаб значения считается по высоте строки за вычетом отступа. На график движения материалов не действует: там сверху и снизу оставляется по 5% высоты строки.
- Тип: число, пиксели
- По умолчанию:
20 - Ограничение: отступ, сравнимый с высотой строки, делает график нечитаемым; высота строки меняется ползунком вертикального масштаба, см. шкалу времени и масштаб.
appSettings.constraints.paddingBottom
Объявлен с типом «число» и значением по умолчанию 20, но не читается при отрисовке. Изменение этого ключа не меняет нижний отступ.
Строки и подсказки: вторичные ограничения
По умолчанию обе секции пустые: строка списка без настройки не показывает текста, подсказка — ничего.
constraintsListInfoConfig
Текст строки в списке вторичных ограничений. Поля: constraintName, constraintItemID, constraintType, constraintTypeName, quantityMaxPoolValue (максимум), minQuantity (всегда 0), constraintGuid.
constraintsTooltipConfig
Подсказка при наведении на график ограничения. Поля: startDate, finishDate, quantity. Даты здесь — объекты даты; без преобразования они выводятся в системном представлении браузера, а не в ISO.
Строки и подсказки: движение материалов
materialConstraintsListInfoConfig
Текст строки в списке движения материалов. Поля: constraintName, constraintItemID, constraintType, constraintTypeName, constraintUOM, maxQuantity, minQuantity, quantityMinPoolValue, quantityMaxPoolValue, constraintGuid. Пакет вычисляет quantityMinPoolValue и quantityMaxPoolValue как минимум и максимум значений событий ограничения. При подготовке текста строки он добавляет их копии под именами minQuantity и maxQuantity. Минимум не обязан быть нулём. Оба вычисленных поля — числа, а не вложенный объект quantityMaxPoolValue.min/max.
materialConstraintsTooltipConfig
Подсказка при наведении на график движения материала. Простые поля: startDate, finishDate, quantity. Поля supply, producers, consumers — списки; для них задаётся группа с собственным набором полей:
json
{
"materialConstraintsTooltipConfig": {
"startDate": { "label": "Начало", "order": 1 },
"quantity": { "label": "Остаток", "order": 2 },
"supply": {
"label": "Поставка",
"order": 3,
"enabled": true,
"fields": {
"name": { "label": "Наименование" },
"quantity": { "label": "Кол-во" }
}
},
"producers": {
"label": "Производство",
"order": 4,
"fields": {
"orderNumber": { "label": "Заказ" },
"operationName": { "label": "Операция" },
"quantity": { "label": "Кол-во" }
}
}
}
}Для записи с остатком 15 и одной поставкой материала «Сталь» в количестве 20 первая настройка покажет строку Остаток: 15, затем группу Поставка 1 со строками Наименование: Сталь и Кол-во: 20. Строка «Начало» покажет дату записи; группа «Производство» появится только при непустом списке producers.
Правила группы:
enabled: falseскрывает группу; отсутствие ключа иtrueравнозначны.hiddenне входит в описание группы; для её видимости используйтеenabled.- Каждый элемент списка выводится с заголовком
подпись Nи строкамиподпись: значение. Внутриfieldsиз описанных выше JSON-параметров действует толькоlabel;order,hiddenиtemplateтам не применяются. Из кода приложение также может задать функциюtransform. - Поля элемента:
name,quantity,orderNumber,operationName,guid. Что из них заполнено, зависит от типа элемента: материал даётnameиquantity, операция —operationNameиorderNumber, нераспознанный элемент —guidиquantity. - Пустой список не показывается вовсе.
Пример полного набора
json
{
"constraintsListInfoConfig": {
"constraintName": { "label": "", "order": 1 },
"minQuantity": { "label": "Мин", "order": 2 },
"quantityMaxPoolValue": { "label": "Макс", "order": 3 }
},
"constraintsTooltipConfig": {
"quantity": { "label": "Использовано" }
},
"materialConstraintsListInfoConfig": {
"constraintName": { "label": "", "order": 1 },
"minQuantity": { "label": "Мин", "order": 2 },
"maxQuantity": { "label": "Макс", "order": 3 },
"constraintUOM": { "label": "", "order": 4 }
},
"materialConstraintsTooltipConfig": {
"quantity": { "label": "Остаток", "order": 2 },
"supply": { "label": "Поставка", "order": 3, "fields": { "name": { "label": "Наименование" }, "quantity": { "label": "Кол-во" } } },
"producers": { "label": "Производство", "order": 4, "fields": { "orderNumber": { "label": "Заказ" }, "operationName": { "label": "Операция" }, "quantity": { "label": "Кол-во" } } },
"consumers": { "label": "Потребление", "order": 5, "fields": { "orderNumber": { "label": "Заказ" }, "operationName": { "label": "Операция" }, "quantity": { "label": "Кол-во" } } }
}
}Даты начала и окончания в подсказках ограничений в этот набор не включены: без преобразования они выводятся через стандартное строковое представление Date, без выбора формата в JSON.