Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
инвентаризация:dev:widget:rackwidget [2023/04/02 05:38]
admin [Инвентаризация: Widget: RackWidget]
инвентаризация:dev:widget:rackwidget [2024/05/22 11:56] (текущий)
admin [Инвентаризация: Widget: RackWidget]
Строка 5: Строка 5:
 Параметры корзины задаются json строкой со структурой корзины (для каждого устройства может быть определена одна двусторонняя корзина спереди или сзади / две различных корзины спереди и сзади) Параметры корзины задаются json строкой со структурой корзины (для каждого устройства может быть определена одна двусторонняя корзина спереди или сзади / две различных корзины спереди и сзади)
  
-<code js>+<code javascript>
 { {
  "cols":[  "cols":[
  {"type":"units","count":1,"size":60}, //колонка с юнитами (размер всей колонки)  {"type":"units","count":1,"size":60}, //колонка с юнитами (размер всей колонки)
- {"type":"void","size":60}, //пустая колонка+ {"type":"void","size":60}, //пустая колонка
  {"type":"units","count":1,"size":60}  {"type":"units","count":1,"size":60}
  ],  ],
  "rows":[  "rows":[
- {"type":"title","size":"12"}, //строка заголовка+ {"type":"title","size":"12"}, //строка заголовка
  {"type":"units","count":6,"size":120}, //строка юнитов (размер всей строки)  {"type":"units","count":6,"size":120}, //строка юнитов (размер всей строки)
- {"type":"void","size":40}, //пустая строка+ {"type":"void","size":40}, //пустая строка
  {"type":"units","count":2,"size":60}  {"type":"units","count":2,"size":60}
  ],  ],
  "hEnumeration":"1", //нумерация по горизонтали - справа налево (таблица рисуется слева направо же)  "hEnumeration":"1", //нумерация по горизонтали - справа налево (таблица рисуется слева направо же)
  "vEnumeration":"1", //по вертикали сверху вниз - (также как таблица)  "vEnumeration":"1", //по вертикали сверху вниз - (также как таблица)
- "priorEnumeration":"v", //сначала по рядам (h), потом по колонкам (v) + "priorEnumeration":"v", //сначала по рядам (h), потом по колонкам (v) 
- "evenEnumeration":"-1", //на четных рядах прямая нумерация или обратная (нумеруем змейкой или пилой)+ "evenEnumeration":"-1", //на четных рядах прямая нумерация или обратная (нумеруем змейкой или пилой)
  "labelWidth":"20", //ширина метки  "labelWidth":"20", //ширина метки
  "labelMode":"h", //метки юнита слева  "labelMode":"h", //метки юнита слева
  "labelPre":"1", //метки юнита справа  "labelPre":"1", //метки юнита справа
  "labelPost":"1"  "labelPost":"1"
- }+ "evenLabelShift":"1", //на четных рядах метку переставлять на другую сторону  
 +}
 </code> </code>
 +
 +==== Рендер таблицами ====
 +Описать сам рендер не успел, но очевидно что конфиги заточены под эти таблицы, и технически все реализуется относительно тривиально.
 +Опишу проблемы. 
 +  * Размер таблиц подстраивается под контент и то что задано конфигом легко может уплыть в сторону того как получилось. (В основном страдает высота строк из-за размера шрифта и ширина меток).
 +  * Масштабирование текста: количество строк может быть разным, при достаточно большом их количестве они должны быть весьма мелкими, но нет CSS свойства размера шрифта в зависимости от размера контейнера (только от размера Viewport). Из того что удалось нагуглить - используйте SVG.
 +  * Гемор с Colspan/Rowspan с учетом с того что метки юнитов это отдельные ячейки в таблице
 +  * Не реализованный, но ожидаемый гемор с вертикальными надписями если блейды будут вертикальными
 +
 +==== Рендер SVG ====
 +  * Размер Viewport SVG задаем в соответствии с размерами шкафа. Таким образом внутри работает по естественным координатам:  \\ {{:инвентаризация:dev:widget:pasted:20230402-085157.png}}
  • инвентаризация/dev/widget/rackwidget.1680413891.txt.gz
  • Последнее изменение: 2023/04/02 05:38
  • admin