ZBLOG

else if ('0BJECTS' == init.type) { let self = new Fieldset(init.useLang ? lang(init.title) : init.title); let me = this; var vlParent = new VLayout().setVerticalAlign('top'); self.setBody(vlParent); if (window.isOuterOperator !...

要将 vlParent 的部分逻辑移动到“逾期”标签的内容中,同时保持其他部分不受影响,可以通过修改代码结构来实现。下面是相应的改写建议:

  1. else if ('0BJECTS' == init.type) {
  2. let self = new Fieldset(init.useLang ? lang(init.title) : init.title);
  3. let me = this;
  4. // 这里可以去掉对 vlParent 的直接引用,将其移入逾期标签内容。
  5. if (window.isOuterOperator != null && window.isOuterOperator != undefined && window.isOuterOperator == true) {
  6. if (init.code === 'loan') {
  7. if (canl("data clearance:customerinfo:overdue info")) {
  8. config.layout.addMember(self);
  9. } else {
  10. config.layout.addMember(self);
  11. }
  12. }
  13. }
  14. // 创建 outerBox 和 tabsContainer
  15. if (!document.getElementById('outerBox')) {
  16. const outerBox = document.createElement('div');
  17. outerBox.id = 'outerBox';
  18. Object.assign(outerBox.style, {
  19. border: '2px solid #000',
  20. padding: '19px',
  21. borderRadius: '5px',
  22. width: '300px'
  23. });
  24. const tabsContainer = document.createElement('div');
  25. Object.assign(tabsContainer.style, {
  26. display: 'flex',
  27. marginBottom: '19px'
  28. });
  29. const contentContainer = document.createElement('div');
  30. Object.assign(contentContainer.style, {
  31. border: '1px solid #000',
  32. padding: '19px'
  33. });
  34. const switchTab = (tab, content) => {
  35. tabsContainer.querySelectorAll('.tab').forEach(t => t.classList.remove('active-tab'));
  36. tab.classList.add('active-tab');
  37. contentContainer.innerHTML = ''; // 清空内容容器
  38. // 处理切换时的具体内容显示
  39. if (typeof content === "function") {
  40. content(); // 如果是函数则调用
  41. } else {
  42. contentContainer.textContent = content;
  43. }
  44. };
  45. const tabs = [
  46. { name: '逾期', content: () => {
  47. let vlParentOverdue = new VLayout().setVerticalAlign('top');
  48. for (var i = 0, N = init.child.length; i < N; i++) {
  49. var initObject = init.child[i];
  50. var vlOverdue = this.initlayout(initObject.child, initObject.path, editable);
  51. vlOverdue.setCSSProperty("paddingBottom", "5px");
  52. if (N > 0 && i >= 1) {
  53. vlOverdue.setCSSProperty("borderTop", "2px solid #E3E3E3");
  54. vlOverdue.setCSSProperty("paddingTop", "10px");
  55. }
  56. if (initObject.type === 'OBJECTS_OUT_COLLECTION') {
  57. me.customerOutCollection.layout.addMember(vlOverdue);
  58. me.customerOutCollection.count++;
  59. } else {
  60. vlParentOverdue.addMember(vlOverdue);
  61. }
  62. }
  63. // 将 overdue layout 添加到内容容器中
  64. contentContainer.appendChild(vlParentOverdue.getDom());
  65. }},
  66. { name: '未逾期', content: () => {/* 未逾期的处理逻辑 */} }
  67. ];
  68. tabs.forEach(({ name, content }) => {
  69. const tab = document.createElement('div');
  70. tab.textContent = name;
  71. tab.classList.add('tab');
  72. tab.addEventListener('click', () => switchTab(tab, content));
  73. tabsContainer.appendChild(tab);
  74. });
  75. switchTab(tabs[0].content); // 默认选中第一个标签页
  76. outerBox.appendChild(tabsContainer);
  77. outerBox.appendChild(contentContainer);
  78. self.setBody(outerBox);
  79. const style = document.createElement('style');
  80. style.innerHTML = `
  81. .tab {
  82. padding: 10px;
  83. cursor: pointer;
  84. border: 1px solid #000;
  85. margin-right: 5px;
  86. color: #000;
  87. background-color: #fff;
  88. }
  89. .active-tab {
  90. background-color: #000;
  91. color: #fff;
  92. }`;
  93. document.head.appendChild(style);
  94. }
  95. }

修改说明:

  1. vlParent 移至“逾期”标签:将之前创建 vlParent 的逻辑放入了“逾期”标签的 content 函数内,这样在切换到该标签时就会执行这个逻辑。
  2. 动态生成和清空:在 switchTab 函数中,确保根据当前激活的标签更新内容区域。
  3. 使用 DOM 操作添加组件:把每个布局成员通过获取它们对应的 DOM 元素 (getDom()) 添加到内容容器。

这样,你可以实现“逾期”和“未逾期”两个页面分别管理各自展示的数据,且外部循环和结构不会受到影响。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22421

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?