为了将逾期内容的逻辑整合到“逾期”标签的 content
函数中,你可以直接使用你的代码片段,并在这个函数内部创建并展示 vlParentOverdue
。下面是如何进行集成的示例:
else if ('0BJECTS' == init.type) {
let self = new Fieldset(init.useLang ? lang(init.title) : init.title);
let me = this;
if (window.isOuterOperator != null && window.isOuterOperator != undefined && window.isOuterOperator == true) {
if (init.code === 'loan') {
config.layout.addMember(self);
}
}
// 创建 outerBox 和 tabsContainer
if (!document.getElementById('outerBox')) {
const outerBox = document.createElement('div');
outerBox.id = 'outerBox';
Object.assign(outerBox.style, {
border: '2px solid #000',
padding: '19px',
borderRadius: '5px',
width: '300px'
});
const tabsContainer = document.createElement('div');
Object.assign(tabsContainer.style, {
display: 'flex',
marginBottom: '19px'
});
const contentContainer = document.createElement('div');
Object.assign(contentContainer.style, {
border: '1px solid #000',
padding: '19px'
});
const switchTab = (tab, content) => {
tabsContainer.querySelectorAll('.tab').forEach(t => t.classList.remove('active-tab'));
tab.classList.add('active-tab');
contentContainer.innerHTML = ''; // 清空内容容器
// 处理切换时的具体内容显示
if (typeof content === "function") {
content(); // 如果是函数则调用
} else {
contentContainer.textContent = content;
}
};
const tabs = [
{ name: '逾期', content: () => {
let vlParentOverdue = new VLayout().setVerticalAlign('top');
for (var i = 0, N = init.child.length; i < N; i++) {
var initObject = init.child[i];
var vlOverdue = this.initlayout(initObject.child, initObject.path, editable);
vlOverdue.setCSSProperty("paddingBottom", "5px");
if (N > 0 && i >= 1) {
vlOverdue.setCSSProperty("borderTop", "2px solid #E3E3E3");
vlOverdue.setCSSProperty("paddingTop", "10px");
}
if (initObject.type === 'OBJECTS_OUT_COLLECTION') {
me.customerOutCollection.layout.addMember(vlOverdue);
me.customerOutCollection.count++;
} else {
vlParentOverdue.addMember(vlOverdue);
}
}
// 将 overdue layout 添加到内容容器中
contentContainer.appendChild(vlParentOverdue.getDom());
}},
{ name: '未逾期', content: () => {/* 未逾期的处理逻辑 */} }
];
tabs.forEach(({ name, content }) => {
const tab = document.createElement('div');
tab.textContent = name;
tab.classList.add('tab');
tab.addEventListener('click', () => switchTab(tab, content));
tabsContainer.appendChild(tab);
});
switchTab(tabs[0].content); // 默认选中第一个标签页
outerBox.appendChild(tabsContainer);
outerBox.appendChild(contentContainer);
const style = document.createElement('style');
style.innerHTML = `
.tab {
padding: 10px;
cursor: pointer;
border: 1px solid #000;
margin-right: 5px;
color: #000;
background-color: #fff;
}
.active-tab {
background-color: #000;
color: #fff;
}`;
document.head.appendChild(style);
}
}
修改说明:
- 整合
vlParentOverdue
的创建和填充逻辑:将你提供的代码直接放入了“逾期”标签的content
函数内。 - 使用
switchTab
函数来动态切换标签:在点击不同的标签时会调用相应的content
函数,从而展示各自对应的内容。 - 确保所有相关样式和结构都在正确的位置:这样可以保证界面的样式保持一致。
这样,点击“逾期”标签时,就会执行相应逻辑并展示数据,而不会影响其他部分。
内容由零声教学AI助手提供,问题来源于学员提问