Добавление картинок в деталь продукты

Здравствуйте, уважаемые разработчики!

Стоит задача, чтобы в детали "Продукты в продаже" отображалась картинка - скриншот добавленного продукта. В виде отдельной колонки. Также необходимо, чтобы на странице поиска и выбора продуктов в списке продуктов рядом с названием также отображался его скриншот (на данный момент отображается только колонка Названия).

По сути нужно добавить поле, отображающее картинки.

Добавить поле для картинки в объект базы данных - это понятно. Каким образом отобразить такую колонку в детали и на странице выбора продукта?

Заранее благодарен за советы.

Версия 7.0.0.235

Нравится

7 комментариев

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.

Здравствуйте, Евгений.

Советую смотреть в сторону того, как изображения реализованы в контактах. В объекте есть свойства Изображение, в котором в качестве значения можно указать колонку объекта с соответствующим типом. Реестр, при наличии значения в колонке, должен автоматически отстроить изображение. В карточке же, советую смотреть на ContactPage, где реализован контрол Terrasoft.DataValueType.IMAGE и его заполнение.

Максим, большое спасибо за ответ! Картинку добавить получилось

1. А каким образом задать ширину и высоту контрола Terrasoft.DataValueType.IMAGE. При добавлении на страницу его размер картинки стандартные 72х72 пкс. Свойств для установки размеров не нашел.

2. И возможно ли привязать ссылку к картинке для перехода на продукт на сайте? Или привязать обработчик перехода по ссылке?

3. Имеется ли вообще документация по работе с UI, описание контролов и их свойств, функций js? Насколько я понимаю в основе лежит Ext.JS с написанными собственными контролами и функциями Terrasoft.

Евгений,

1. Уточню у разработки, тоже не нашел как сделать это конфигурационно. Как вариант пока могу предложить менять css.

2. Можно подписаться на клик по контролу, расширив метод this.methods.init:

Ext.get('item-image').on('click', function() {
	window.open('http://google.com');
}, this);

3. По UI открытой документации пока нет. Насколько мне известно, в планах на публикацию она присутствует. Но по срокам не сориентирую.

Более подробнее о задаче. На страницу продукты в продаже добавили элемент Terrasoft.DataValueType.IMAGE, который отображает скриншот продукта по http ссылке при выборе продукта в лукапном поле.

1. К сожалению не получается изменить размер рисунка, пробовал через CustomConfig, параметры width и с кавычками и без

Код html

<div id="Image-container" class="page-header-image"><img id="ext-gen1002-img-control" class="controlBaseedit" src="http://site/image.png" width="72" height="72" alt=""></div>

Код поля в замещающем модуле

dataValueType: Terrasoft.DataValueType.IMAGE,
name: 'Image',
columnPath: 'Image',
getSrcMethod: 'getSrcMethod',
visible: true,
dependencies: ['Product'],
methodName: 'getSrcMethod',
			CustomConfig: {
				styles: {
                                   wrapStyles: {
							'width': '300',
							'height': '300'
			}
			}
			} 

2. По поводу обработчика клика. При создании страницы и инициализации Init обработчик on('click') нормально добавляется, но когда мы выбираем новый продукт в лупапном поле, картинка Terrasoft.DataValueType.IMAGE обновляется и "слетает" обработчик. Каким образом в данном случае его "на лету" привязать к Terrasoft.DataValueType.IMAGE?

Евгений,

1. Попробуйте задать стили в CSS модуле. В конфигурации создаете модуль, на вкладке LESS описываете стили. В карточку передаете этот модуль в аргументах метода define 'css!MyCSSModule'. Не уверен, что на 7.0.0 это работает, но попробовать стоит.

2. Добавьте подписку на клик в методе getSrcMethod, который у Вас срабатывает при смене продукта.

Максим, спасибо за помощь - с css получилось! По клику еще пробуем, если что, буду обращаться. Спасибо!

Показать все комментарии