Публикация

Скрыть вкладки

//Добавляем в методы
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;
                    }
                }
            }    
        }
    }
},

 

Нравится

Поделиться

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