class cy_tabs { constructor(boxElm, clickTabCallBack, sdk) { let elm if(typeof boxElm === 'string') { elm = document.getElementById(boxElm); } else { elm = boxElm } // let elm = document.getElementById(id); let pane = elm.getElementsByTagName('DIV-cy-tab-pane') let tabTop = `
` let tabContent = `
` let tabindex = 0 for (let i = 0; i < pane.length; i++) { let flag = false if (sdk && sdk.tabHide && Array.isArray(sdk.tabHide)) { for (let m = 0; m < sdk.tabHide.length; m++) { if (pane[i].getAttribute('label') === sdk.tabHide[m]) { flag = true break } } } if (flag) { continue } let style = 'display: none;' let active = '' if (tabindex == 0) { style = '' active = 'is-active' } tabTop = tabTop + `
` + pane[i].getAttribute('label') + `
` tabContent = tabContent + `
` + pane[i].innerHTML + `
` tabindex++ } tabTop = tabTop + `
` tabContent = tabContent + `
` let BoxElm = document.createElement('div'); if(typeof boxElm === 'string') { BoxElm.setAttribute('id', boxElm) } BoxElm.setAttribute('class', 'DIV-cy-tabs') BoxElm.innerHTML = tabTop + tabContent elm.parentNode.insertBefore(BoxElm, elm); elm.parentNode.removeChild(elm); // 点击事件 let tabs = BoxElm.getElementsByClassName('DIV-cy-tab-pane-title-p') for (let i = 0; i < tabs.length; i++) { tabs[i].addEventListener('click', (e) => { let tabindex = e.target.getAttribute('tabindex') let contentElm = BoxElm.getElementsByClassName('DIV-cy-tab-content-pane') clickTabCallBack && clickTabCallBack(tabindex) for (let i = 0; i < contentElm.length; i++) { if (i === parseInt(tabindex)) { contentElm[i].style.display = '' tabs[i].className = 'DIV-cy-tab-pane-title-p is-active' } else { contentElm[i].style.display = 'none' tabs[i].className = 'DIV-cy-tab-pane-title-p' } } contentElm[parseInt(tabindex)].style.display = '' }) } this.clickTabCallBack = clickTabCallBack } clickTabCallBack() { if (this.clickTabCallBack) { this.clickTabCallBack() } } } export default cy_tabs