Мобильное приложение
7.10

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

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

Нравится

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 = {

    controllerName: "UsrAccountPreviewPage.Controller",

    viewXType: "usractivitypreviewpageview"

};

Ext.define("UsrAccountPreviewPage.View", {

    extend: "AccountPreviewPage.View",

    xtype: "usractivitypreviewpageview",

    config: {

        id: "AccountPreviewPage"

    },

    /**

     * @inheritdoc

     * @protected

     * @overridden

     */

    shouldHidePanelItem: function(loadedRecord, component) {

        var detailName = component.config.name;

        if (detailName === "ActivityDetailV2StandartDetail") {

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

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

        else {

            return this.callParent(arguments);

        }

    }

});

Ext.define("UsrAccountPreviewPage.Controller", {

    extend: "AccountPreviewPage.Controller",

    statics: {

        Model: Account

    },

    config: {

        refs: {

            view: "#AccountPreviewPage"

        }

    }

});

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

"Models": {

    "Account": {

        ...

        "Preview""UsrMobileAccountPreviewPage",

        ...

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