//Добавляем в методы methods: { //TODO: Изначальная инициализация tabRender: function(tabObject) { //TODO }, subscribeForEvents: function() { this.on("change:UsrType", this.changeTabsVisibility.bind(this)); //UsrType - поле, по которому будут скрываться вкладки }, changeTabsVisibility: function() { var usrType = this.get("UsrType") || {}; //"UsrType" - поле, по которому будут скрываться вкладки switch(usrType.value) { case "933b3812-4882-484f-9ba7-37b272443f36": //id одного из состояний из поля UsrType this.hideTabByName( "Tab98e9ceedTabLabel", true ); //Имя нужной вкладки, в diff выглядит так "name": "Tab98e9ceedTabLabel", this.hideTabByName( "Tabc65f2ae2TabLabel", true ); //Имя нужной вкладки. Та, что true будет скрыта this.hideTabByName( "Tabfcd67f08TabLabel", false ); //Имя нужной вкладки. Та, что false будет отображаться break; case "49bbaa75-dfdd-4de5-a2fa-4d9b2ba54b96": //id одного из состояний из поля UsrType case "8daf0d76-5522-4444-843d-54f05bae3ad9": //id одного из состояний из поля UsrType this.hideTabByName( "Tabfcd67f08TabLabel", true ); //Имя нужной вкладки this.hideTabByName( "Tabc65f2ae2TabLabel", true ); //Имя нужной вкладки this.hideTabByName( "Tab98e9ceedTabLabel", false ); //Имя нужной вкладки break; case "b74416cd-ae95-4e6c-b7f9-fc80dcbcf7af": //id одного из состояний из поля UsrType this.hideTabByName( "Tabfcd67f08TabLabel", true ); //Имя нужной вкладки this.hideTabByName( "Tab98e9ceedTabLabel", true ); //Имя нужной вкладки this.hideTabByName( "Tabc65f2ae2TabLabel", false ); //Имя нужной вкладки break; default: //Если состояние не указано this.hideTabByName( "Tabfcd67f08TabLabel", false ); //Имя нужной вкладки this.hideTabByName( "Tab98e9ceedTabLabel", false ); //Имя нужной вкладки this.hideTabByName( "Tabc65f2ae2TabLabel", false ); //Имя нужной вкладки } }, init: function() { this.callParent(arguments); this.subscribeForEvents(); }, hideTabByName: function(tabName, isHide){ var tabsCollection = this.get("TabsCollection"); if(tabsCollection){ var tabIndex = tabsCollection.collection.keys.indexOf(tabName); var tabsPanelDomElement = document.getElementById("ActivityPageV2TabsTabPanel-tabpanel-items"); // Вместо "ActivityPageV2..." в этой строке подставьте своё) if(tabsPanelDomElement){ tabDomElement = tabsPanelDomElement.querySelector('[data-item-index="'+tabIndex.toString()+'"]'); if(tabDomElement){ if(isHide){ tabDomElement.style.display = "none"; }else{ tabDomElement.style.display = null; } } } } } },
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать