В моб приложение приходит виза по обращениям, там написан номер обращения, как бы его нажимать, чтобы переходило в обращение (все в том же мобе). Сейчас это текст просто.
Или может как-то вынести поле с обращением, чтобы нажать и перейти.
Не могу понять суть визы как раздела, там же нет никакой информации по объекту визирования.
Помогите, пожалуйста, решить следующую задачу: в реестре записей мобильного приложения в зависимости от значения определенного поля надо выделять строки жирным шрифтом либо подсвечивать. Т.е. требуется форматирование стиля строки по условию.
Попыталась поискать решение по материалам сообщества, но так и не разобралась, можно ли реализовать такую потребность и каким образом.
Марина, это немного нетривиальная задача, но она реализуема.
Как подобное можно реализовать. Для этого нужно по сути реализовать свой компонент реестра\грида, расширив базовый компонент list. Именно так сделано в разделе «Лента»\”Feed” (см. MobileFeedList, MobileSocialMessageGridPageView).
Создать свой компонент, расширив базовый list. Например, если нужно менять стиль только основного выводимого поля, то можно реализовать в нем только метод getApplyItemTplPrimaryColumnFn. Что-то типа:
Ext.define("Terrasoft.configuration.MyList", {
extend:"Ext.Terrasoft.List",
xtype:"cfmylist",
getApplyItemTplPrimaryColumnFn: function(){return function(values){
var config =this.primaryColumnConfig;
var value =this.getValueByConfig(config, values);
var typeId = values["Type"];
var isRed =false;if(typeId ==="some_type_value"){
isRed =true;}if(value){return"<div class=\"x-list-title\" "+ isRed ?"style=\"color: red;\"":""+">"+ value +"</div>";}return"";};}});
Во view страницы реестра своего раздела указать в качестве используемого компонента свой разработанный компонент из п.1.
Марина, это немного нетривиальная задача, но она реализуема.
Как подобное можно реализовать. Для этого нужно по сути реализовать свой компонент реестра\грида, расширив базовый компонент list. Именно так сделано в разделе «Лента»\”Feed” (см. MobileFeedList, MobileSocialMessageGridPageView).
Создать свой компонент, расширив базовый list. Например, если нужно менять стиль только основного выводимого поля, то можно реализовать в нем только метод getApplyItemTplPrimaryColumnFn. Что-то типа:
Ext.define("Terrasoft.configuration.MyList", {
extend:"Ext.Terrasoft.List",
xtype:"cfmylist",
getApplyItemTplPrimaryColumnFn: function(){return function(values){
var config =this.primaryColumnConfig;
var value =this.getValueByConfig(config, values);
var typeId = values["Type"];
var isRed =false;if(typeId ==="some_type_value"){
isRed =true;}if(value){return"<div class=\"x-list-title\" "+ isRed ?"style=\"color: red;\"":""+">"+ value +"</div>";}return"";};}});
Во view страницы реестра своего раздела указать в качестве используемого компонента свой разработанный компонент из п.1.
Александр, огромное спасибо за подробное описание алгоритма с примерами. Стала пытаться реализовать алгоритм и столкнулась с проблемой во 2-м пункте :)
В конкретной ситуации рассматривается реестр Контрагентов. Сейчас отображается MobileAccountGridPage, который надо изменить и в коде которого:
Так как здесь я не могу вносить изменения, то пытаюсь реализовать либо как:
- расширение от вышеуказанного класса "AccountGridPage.View", но в этом случае возникает ошибка - Uncaught Error: [Ext.Loader] Failed loading 'AccountGridPage/View.js', please verify that the file exists
- расширение от класса "Terrasoft.view.AccountGridPage.View" , возникает ошибка - sencha-touch-all-debug.js:8634 Uncaught Error: [Ext.Loader] Failed loading 'app/view/AccountGridPage/View.js', please verify that the file exists,
- расширение от "Terrasoft.view.BaseGridPage.View", но в этом случае ничего не происходит.
Ext.define("Terrasoft.configuration.view.UsrAccountGridPage", {// extend: "Terrasoft.view.AccountGridPage.View", // Failed loading 'app/view/AccountGridPage/View.js'// extend: "AccountGridPage.View", // ошибка Failed loading 'AccountGridPage/View.js
extend:"Terrasoft.view.BaseGridPage.View", // ничего не происходит
xtype:"usraccountgridpage",
config:{
grid:{
xtype:"cfmylist",
},
}});
Как правильно выполнить расширение в данном случае? Благодарю за помощь
Можно скопировать текст текущей view (MobileAccountGridPage, если не ошибаюсь), создать свою схему, вставить туда скопированный текст, у свойства grid указать свой новый xtype компонента грида и не забыть указать эту схему в манифесте в свойстве Grid у модели Account.