// pipeline-app 首页 TabPanel 动态 tab 支持 // 由 HTML shell 自动加载(configuredServer.get_js_files 收集 wwwroot 下 .js) (function(){ if (typeof bricks === 'undefined' || !bricks.TabPanel) return; if (bricks.TabPanel.prototype._dyn_patched) return; bricks.TabPanel.prototype._dyn_patched = true; // 动态打开 tab:已存在则切换,不存在则新增 bricks.TabPanel.prototype.open_tab = async function(desc){ if (this.content_buffer.hasOwnProperty(desc.name)){ if (desc.name !== this.cur_tab_name){ this.cur_tab_name = desc.name; this.switch_content(this.content_buffer[desc.name]); if (this.toolbar && this.toolbar.click) this.toolbar.click(desc.name); } return; } desc.content = desc.content || {"widgettype":"urlwidget","options":{"url":desc.url}}; this.opts.items.push(desc); if (this.add_tab) this.add_tab(desc); var w = await bricks.widgetBuild(desc.content, this, {}); if (!w) return; this.content_buffer[desc.name] = w; this.cur_tab_name = desc.name; this.switch_content(w); }; // 修复 show_tabcontent 的 bug(cur_tab_name 赋值用了未定义变量 name) bricks.TabPanel.prototype.show_tabcontent = async function(event){ var tdesc = event.params; if (tdesc.name === this.cur_tab_name) return; var items = this.opts.items; for (var i=0;i