Переключение активной вкладки в зависимости от шага кейса

На странице объекта есть кейс. Каждому шагу кейса соответствует свой статус объекта и вкладка в коллекции Вкладок. Кейс переходит по статусам автоматически. 

Вкладки, не соответствующие шагу, скрываются.

 

Как сделать так, чтобы переключение вкладок тоже происходило автоматически вместе со сменой статусов (шагов кейса)?

Нравится

1 комментарий

Добрый день.

Для реализации Вам необходимо подписаться на изменение колонки кейса и при её изменении вызывать метод setActiveTab.

Пример реализации для страницы CasePage:

define("CasePage", [], function() {
		return {
			entitySchemaName: "Case",
          	attributes: {
              "ActiveTabName": {
                dependencies: [
                  {
                    columns: ["Status"],
                    methodName: "setActiveTabByStatus"
                  }
                ]
              },
              "StatusTabDictionary": {
                dataValueType: Terrasoft.DataValueType.COLLECTION,
                value: [
                  { statusId: "7e9f1204-f46b-1410-fb9a-0050ba5d6c38", tabName: "CaseInformationTab" },
                  { statusId: "3859c6e7-cbcb-486b-ba53-77808fe6e593", tabName: "TimelineTab" },
                  { statusId: "ae7f411e-f46b-1410-009b-0050ba5d6c38", tabName: "SolutionTab" }
                ]
              }
            },
			methods: {
 
              setActiveTabByStatus: function() {
                var status = this.get("Status");
                if (!status) {
                  return;
                }
 
                var statusTabDictionary = this.get("StatusTabDictionary");
                for (var i = 0; i < statusTabDictionary.length; i++) {
                  var item = statusTabDictionary[i];
                  if (item.statusId === status.value) {
                    this.setActiveTab(item.tabName);
                    return;
                  }
                }
              },
 
              initTabs: function() {
                this.callParent(arguments);
                this.setActiveTabByStatus();
              },
 
              onEntityInitialized: function() {
                this.callParent(arguments);
                this.setActiveTabByStatus();
              }
 
            }
		};
	}
);

 

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