Скрытие группы полей в зависимости от условий

Добрый день.
В карточке обращения есть группа полей (например, Сроки), мне нужно скрыть\показать группу в зависимости от каких-либо условий (например, показать группу полей Сроки только на стадии "Решено").

Подскажите, как это сделать?

Пробовала сделать через бизнес-правила https://academy.terrasoft.ru/documents/technic-sdk/7-10/pravilo-bindpara... , но не получилось.

Нравится

2 комментария
Лучший ответ

как пример LeadPageV2 группа полей "Регистрационные данные"

attributes: {
...
//атрибут значением которого мы будем контролировать видимость группы полей
	"isLeadPageRegisterInfoVisible": {
		type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
		dataValueType: Terrasoft.DataValueType.BOOLEAN,
                value: false
	},
...
}
diff: {
...
//merge для конфигурационного объекта группы полей
	{
		"operation": "merge",
		"name": "LeadPageRegisterInfo",
		"values": {
                         //"биндинг" (привязка) значения свойства viewModel к атрибуту
                         "visible": {bindTo: "isLeadPageRegisterInfoVisible"}
		}
	},
...
},
methods: {
...
     "onEntityInitialized": function() {
              this.callParent(arguments);
              //сохраним в глобальной области видимости контекст карточки, для удобного доступа из консоли
              document.thisPageScope = this; 
     }
...
}

теперь откроем карточку лида, и в консоли поиграемся значением атрибута:

document.thisPageScope.set("isLeadPageRegisterInfoVisible", true);
//наблюдаем появившуюся группу полей
document.thisPageScope.set("isLeadPageRegisterInfoVisible", false);
//наблюдаем как группа полей была скрыта.

вам необходимо определить группу полей в diff секции карточки
и ёё свойство visible забиндить на атрибут (булево) значением которого в последствии управлять из Вашего клиентского кода, в зависимости от значения в атрибуте - группа полей будет скрыта или продемонстрирована.

как пример LeadPageV2 группа полей "Регистрационные данные"

attributes: {
...
//атрибут значением которого мы будем контролировать видимость группы полей
	"isLeadPageRegisterInfoVisible": {
		type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
		dataValueType: Terrasoft.DataValueType.BOOLEAN,
                value: false
	},
...
}
diff: {
...
//merge для конфигурационного объекта группы полей
	{
		"operation": "merge",
		"name": "LeadPageRegisterInfo",
		"values": {
                         //"биндинг" (привязка) значения свойства viewModel к атрибуту
                         "visible": {bindTo: "isLeadPageRegisterInfoVisible"}
		}
	},
...
},
methods: {
...
     "onEntityInitialized": function() {
              this.callParent(arguments);
              //сохраним в глобальной области видимости контекст карточки, для удобного доступа из консоли
              document.thisPageScope = this; 
     }
...
}

теперь откроем карточку лида, и в консоли поиграемся значением атрибута:

document.thisPageScope.set("isLeadPageRegisterInfoVisible", true);
//наблюдаем появившуюся группу полей
document.thisPageScope.set("isLeadPageRegisterInfoVisible", false);
//наблюдаем как группа полей была скрыта.
Показать все комментарии