Скрытие стандартной детали в мобильном приложении

Добрый день. Возникла необходимость скрыть стандартную деталь на странице мобильного приложения. Есть ли возможность это реализовать?

Нравится

3 комментария

Добрый день. Вот тут предоставили хороший ответ: https://community.terrasoft.ru/questions/skrytie-standartnoi-detali-v-k…

Парамонов Роман,

благодарю. Всё получилось.

Здравствуйте! 



Один из вариантов реализации этой задачи - перекрыть в контроллерах страниц метод onBusinessRuleExecuted, который отрабатывает после выполнения бизнес-правил и в котором можно найти нужный элемент у panel-а и скрыть\показать его.

Ext.define("CustomUsrHaulPreviewPage.Controller", {

    override: "UsrHaulPreviewPage.Controller",

 

    onBusinessRuleExecuted: function(record, rule, ruleResult) {

        this.callParent(arguments);

        var view = this.getView();

        var panel = view.getPanel();

        var type = record.get("UsrDriverCheckType");

        var isNeededType = (type && type.getId() === "079acedd-585f-4a0e-aff0-eb419ec09925");

        var panelItems = panel.getItems();

        for (var i = 0, ln = panelItems.getCount(); i < ln; i++) {

            var item = panelItems.items[i];

            if (item instanceof Terrasoft.ViewEmbeddedDetail &&

                    item.getName() === "UsrSchema11DetailEmbeddedDetail") {

                var isItemHidden = item.getHidden();

                if (type && isNeededType) {

                    if (!isItemHidden) {

                        item.setHidden(true);

                    }

                } else if (type) {

                    if (isItemHidden) {

                        item.setHidden(false);

                    }

                }

            }

        }

    }

 

});

Ext.define("CustomUsrHaulEditPage.Controller", {

    override: "UsrHaulEditPage.Controller",

 

    onBusinessRuleExecuted: function(record, rule, ruleResult) {

        this.callParent(arguments);

        var view = this.getView();

        var panel = view.getPanel();

        var type = record.get("UsrDriverCheckType");

        var isNeededType = (type && type.getId() === "079acedd-585f-4a0e-aff0-eb419ec09925");

        var panelItems = panel.getItems();

        for (var i = 0, ln = panelItems.getCount(); i < ln; i++) {

            var item = panelItems.items[i];

            if (item instanceof Terrasoft.EditEmbeddedDetail &&

                    item.getName() === "UsrSchema11DetailEmbeddedDetail") {

                var isItemHidden = item.getHidden();

                if (type && isNeededType) {

                    if (!isItemHidden) {

                        item.setHidden(true);

                    }

                } else if (type) {

                    if (isItemHidden) {

                        item.setHidden(false);

                    }

                }

            }

        }

    }

 

});

Либо же 

Создаем новую схему UsrMobileAccountPreviewPage (с типом «Модуль»)

/* globals Account: false */

Terrasoft.LastLoadedPageData = {

&nbsp;&nbsp;&nbsp;&nbsp;controllerName:&nbsp;"UsrAccountPreviewPage.Controller",

&nbsp;&nbsp;&nbsp;&nbsp;viewXType:&nbsp;"usractivitypreviewpageview"

};

Ext.define("UsrAccountPreviewPage.View", {

&nbsp;&nbsp;&nbsp;&nbsp;extend:&nbsp;"AccountPreviewPage.View",

&nbsp;&nbsp;&nbsp;&nbsp;xtype:&nbsp;"usractivitypreviewpageview",

&nbsp;&nbsp;&nbsp;&nbsp;config: {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:&nbsp;"AccountPreviewPage"

&nbsp;&nbsp;&nbsp;&nbsp;},

&nbsp;&nbsp;&nbsp;&nbsp;/**

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @inheritdoc

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @protected

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @overridden

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/

&nbsp;&nbsp;&nbsp;&nbsp;shouldHidePanelItem:&nbsp;function(loadedRecord, component) {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var detailName = component.config.name;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (detailName ===&nbsp;"ActivityDetailV2StandartDetail") {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var categoryId = loadedRecord.get("AccountCategory.Id");

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return categoryId !== Terrasoft.Configuration.AccountCategory.DoctorVisit;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return this.callParent(arguments);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;}

});

Ext.define("UsrAccountPreviewPage.Controller", {

&nbsp;&nbsp;&nbsp;&nbsp;extend:&nbsp;"AccountPreviewPage.Controller",

&nbsp;&nbsp;&nbsp;&nbsp;statics: {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Model: Account

&nbsp;&nbsp;&nbsp;&nbsp;},

&nbsp;&nbsp;&nbsp;&nbsp;config: {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refs: {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;view:&nbsp;"#AccountPreviewPage"

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;}

});

Прописываем ее в манифесте

"Models": {

&nbsp;&nbsp;&nbsp;&nbsp;"Account": {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Preview":&nbsp;"UsrMobileAccountPreviewPage",

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...

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