Здравствуйте, уважаемые разработчики!
Стоит задача, чтобы в детали "Продукты в продаже" отображалась картинка - скриншот добавленного продукта. В виде отдельной колонки. Также необходимо, чтобы на странице поиска и выбора продуктов в списке продуктов рядом с названием также отображался его скриншот (на данный момент отображается только колонка Названия).
По сути нужно добавить поле, отображающее картинки.
Добавить поле для картинки в объект базы данных - это понятно. Каким образом отобразить такую колонку в детали и на странице выбора продукта?
Заранее благодарен за советы.
Версия 7.0.0.235
Нравится
Здравствуйте, Евгений.
Советую смотреть в сторону того, как изображения реализованы в контактах. В объекте есть свойства Изображение, в котором в качестве значения можно указать колонку объекта с соответствующим типом. Реестр, при наличии значения в колонке, должен автоматически отстроить изображение. В карточке же, советую смотреть на 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 получилось! По клику еще пробуем, если что, буду обращаться. Спасибо!