Update: 调整tab组件

This commit is contained in:
王立帮
2024-09-01 14:13:46 +08:00
parent 557a035010
commit b988931ac4

View File

@@ -68,8 +68,18 @@
instanceId += 1
this.setupCustomProperties()
// this.setupStyleEl()
this.setupEvents()
$(this.el).on('click', '.chrome-tab', (event) => {
this.setCurrentTab(event.currentTarget)
})
$(this.el).on('click', '.chrome-tab-close', (event) => {
event.stopPropagation()
const $tab = $(event.currentTarget).closest('.chrome-tab')
if (!this.checkDestroy({ detail: { tabEl: $tab[0] } })) {
return
}
this.removeTab($tab[0])
})
}
emit(eventName, data) {
@@ -85,18 +95,6 @@
this.el.appendChild(this.styleEl)
}
setupEvents() {
/*this.el.addEventListener('dblclick', event => {
if ([this.el, this.tabContentEl].includes(event.target)) this.addTab()
})*/
this.tabEls.forEach((tabEl) => this.setTabCloseEventListener(tabEl))
}
get tabEls() {
return Array.prototype.slice.call(this.el.querySelectorAll('.chrome-tab'))
}
get tabContentEl() {
return this.el.querySelector('.x-scrollbar__content') ?? this.el.querySelector('.chrome-tabs-content')
}
@@ -117,30 +115,12 @@
tabProperties = Object.assign({}, defaultTapProperties, tabProperties)
this.tabContentEl.appendChild(tabEl)
this.setTabClickEventListener(tabEl)
this.setTabCloseEventListener(tabEl)
this.updateTab(tabEl, tabProperties)
this.emit('created', { tabEl })
if (!background) this.setCurrentTab(tabEl)
return tabEl;
}
setTabClickEventListener(tabEl) {
tabEl.addEventListener('click', event => {
this.setCurrentTab(tabEl)
});
}
setTabCloseEventListener(tabEl) {
tabEl.querySelector('.chrome-tab-close').addEventListener('click', event => {
event.stopPropagation()
if (!this.checkDestroy({ detail: { tabEl } })) {
return
}
this.removeTab(tabEl)
})
}
get activeTabEl() {
return this.el.querySelector('.chrome-tab[active]')
}