Это старая версия документа!


Инвентаризация: 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"
	}

Описать сам рендер не успел, но очевидно что конфиги заточены под эти таблицы, и технически все реализуется относительно тривиально.
Опишу проблемы.

  • Размер таблиц подстраивается под контент и то что задано конфигом легко может уплыть в сторону того как получилось. (В основном страдает высота строк из-за размера шрифта и ширина меток).
  • Масштабирование текста: количество строк может быть разным, при достаточно большом их количестве они должны быть весьма мелкими, но нет CSS свойства размера шрифта в зависимости от размера контейнера (только от размера Viewport). Из того что удалось нагуглить - используйте SVG.
  • Размер Viewport SVG задаем в соответствии с размерами шкафа. Таким образом внутри работает по естественным координатам:
  • инвентаризация/dev/widget/rackwidget.1680414729.txt.gz
  • Последнее изменение: 2023/04/02 05:52
  • admin