fix: tooltip issue about customer follower
change: Grid.export optimized (compression with `deflate`) feature: ui-tab feature: Popup.closable
This commit is contained in:
43
lib/ui/tab.js
Normal file
43
lib/ui/tab.js
Normal file
@ -0,0 +1,43 @@
|
||||
import "./css/tab.scss";
|
||||
|
||||
/**
|
||||
* Tab 页创建参数类
|
||||
* @typedef TabOption
|
||||
* @property {HTMLElement} container - 父容器
|
||||
*/
|
||||
|
||||
import { createElement } from "../functions";
|
||||
|
||||
/**
|
||||
* 创建 Tab 页
|
||||
* @param {TabOption | HTMLElement} options - 创建选项
|
||||
*/
|
||||
export function createTab(options) {
|
||||
if (options instanceof HTMLElement) {
|
||||
options = { container: options };
|
||||
}
|
||||
let container;
|
||||
if (options?.container instanceof HTMLElement) {
|
||||
container = options.container;
|
||||
if (!container.classList.contains('ui-tab-container')) {
|
||||
container.classList.add('ui-tab-container');
|
||||
}
|
||||
} else {
|
||||
container = createElement('div', 'ui-tab-container');
|
||||
}
|
||||
container.replaceChildren(
|
||||
createElement('div', header => {
|
||||
header.className = 'ui-tab-header';
|
||||
header.addEventListener('click', e => {
|
||||
const title = e.target;
|
||||
if (title.classList.contains('ui-tab-title')) {
|
||||
// title
|
||||
header.querySelectorAll('.ui-tab-title').forEach(t => t === title ? t.classList.add('selected') : t.classList.remove('selected'));
|
||||
// pages
|
||||
const page = title.dataset.for;
|
||||
container.querySelectorAll('[data-page]').forEach(p => p.style.display = p.dataset.page === page ? 'block' : '');
|
||||
}
|
||||
});
|
||||
})
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user