Публикация

Как свернуть деталь по умолчанию

Задача

Параметр определнения скрыть/ раскрыть деталь при входе на страницу

Решение

Вы можете переопределить функцию 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);
},

 

Нравится

Поделиться

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

Добрый день! Коллеги, подскажите как на дальше использовать переопределенную функцию на странице с деталью которую нужно раскрывать? Понимаю что в блоке 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*/
		};
	});

 

Григорьев Михаил Алексеевич,

Спасибо за подсказку. Я правильно понимаю что в данному случае, деталь будет разворачиваться на любой странице где она определена, а ни на конкретной странице?

Стельмаш Дмитрий Сергеевич,

 

Где вы выводите делать, там и будет она разворачиваться/сворачиваться.

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