Задача
Параметр определнения скрыть/ раскрыть деталь при входе на страницу
Решение
Вы можете переопределить функцию onDetailCollapsedChanged, которая отвечает за отображение детали:
/** * Обрабатывает сворачивание или разворачивание детали. * @protected * @virtual * @param {Boolean} isCollapsed Признак свернутости/развернутости детали. */ onDetailCollapsedChanged: function(isCollapsed) { var profile = this.getProfile(); var key = this.getProfileKey(); if (profile && key) { profile.isCollapsed = isCollapsed; this.Terrasoft.utils.saveUserProfile(key, profile, false); } this.set("IsDetailCollapsed", isCollapsed); },
Добрый день! Коллеги, подскажите как на дальше использовать переопределенную функцию на странице с деталью которую нужно раскрывать? Понимаю что в блоке metods переопределяем функцию
onDetailCollapsedChanged, а дальше нужно ее как-то вызвать из нужной мне детали, но как это корректно сделать не знаю
Стельмаш Дмитрий Сергеевич,
Здравствуйте.
Для начала рекомендую вам посмотреть как происходит работа с атрибутом IsDetailCollapsed в схеме BaseDetailV2, чтобы понимать, как изменяется параметр.
А для того, чтобы применить данный метод к конкретной детали, необходимо следующее (пример приведен на замещении уже существующей базовой детали):
В конфигурации создать "Замещающую модель представления" и наследоваться от какой-то детали - например ServicePactRecipientsDetail.
Использовав примерно такой код:
define("ServicePactRecipientsDetail", [], function() { return { entitySchemaName: "ServiceInServicePact", messages: {}, methods: { onDetailCollapsedChanged: function(isCollapsed) { debugger; var profile = this.getProfile(); var key = this.getProfileKey(); if (profile && key) { profile.isCollapsed = isCollapsed; this.Terrasoft.utils.saveUserProfile(key, profile, false); } this.set("IsDetailCollapsed", isCollapsed); } }, diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/ }; });
Григорьев Михаил Алексеевич,
Спасибо за подсказку. Я правильно понимаю что в данному случае, деталь будет разворачиваться на любой странице где она определена, а ни на конкретной странице?
Стельмаш Дмитрий Сергеевич,
Где вы выводите делать, там и будет она разворачиваться/сворачиваться.