Инвентаризация: Widget: RackWidget
Рисовалка корзин для устройств с корзинами, шкафов/шасси и т.п.
Параметры корзины задаются json строкой со структурой корзины (для каждого устройства может быть определена одна двусторонняя корзина спереди или сзади / две различных корзины спереди и сзади)
{ "cols":[ {"type":"units","count":1,"size":60}, //колонка с юнитами (размер всей колонки) {"type":"void","size":60}, //пустая колонка {"type":"units","count":1,"size":60} ], "rows":[ {"type":"title","size":"12"}, //строка заголовка {"type":"units","count":6,"size":120}, //строка юнитов (размер всей строки) {"type":"void","size":40}, //пустая строка {"type":"units","count":2,"size":60} ], "hEnumeration":"1", //нумерация по горизонтали - справа налево (таблица рисуется слева направо же) "vEnumeration":"1", //по вертикали сверху вниз - (также как таблица) "priorEnumeration":"v", //сначала по рядам (h), потом по колонкам (v) "evenEnumeration":"-1", //на четных рядах прямая нумерация или обратная (нумеруем змейкой или пилой) "labelWidth":"20", //ширина метки "labelMode":"h", //метки юнита слева "labelPre":"1", //метки юнита справа "labelPost":"1" "evenLabelShift":"1", //на четных рядах метку переставлять на другую сторону }
Рендер таблицами
Описать сам рендер не успел, но очевидно что конфиги заточены под эти таблицы, и технически все реализуется относительно тривиально.
Опишу проблемы.
- Размер таблиц подстраивается под контент и то что задано конфигом легко может уплыть в сторону того как получилось. (В основном страдает высота строк из-за размера шрифта и ширина меток).
- Масштабирование текста: количество строк может быть разным, при достаточно большом их количестве они должны быть весьма мелкими, но нет CSS свойства размера шрифта в зависимости от размера контейнера (только от размера Viewport). Из того что удалось нагуглить - используйте SVG.
- Гемор с Colspan/Rowspan с учетом с того что метки юнитов это отдельные ячейки в таблице
- Не реализованный, но ожидаемый гемор с вертикальными надписями если блейды будут вертикальными