根因链:
1. TabPanel内部容器结构导致getWidgetById找不到tab content中的widget
2. urlwidget渲染后替换自身DOM,id丢失
修复:
- model_plaza.ui: 移除TabPanel,用两个VBox(按分类/按供应商)+script切换display
- plaza_cards_panel/plaza_provider_panel改为VBox容器(urlwidget作子组件),id不丢失
- CSS用#plaza_view_provider{display:none}初始隐藏供应商视图
- 切换按钮用getElementById直接操作display,不依赖bricks widget寻址
- 全链路filler确保VScrollPanel获得确定高度可滚动
85 lines
1.5 KiB
XML
85 lines
1.5 KiB
XML
{% set catelogs = get_llmcatelogs() %}
|
|
{
|
|
"widgettype":"HBox",
|
|
"options":{
|
|
"css":"filler",
|
|
"width":"100%",
|
|
"height":"100%"
|
|
},
|
|
"subwidgets":[
|
|
{
|
|
"widgettype":"VScrollPanel",
|
|
"options":{
|
|
"cwidth":18,
|
|
"height":"100%",
|
|
"css":"plaza-sidebar"
|
|
},
|
|
"subwidgets":[
|
|
{
|
|
"widgettype":"Button",
|
|
"options":{
|
|
"label":"全部",
|
|
"css":"plaza-nav-btn",
|
|
"width":"100%"
|
|
},
|
|
"binds":[
|
|
{
|
|
"wid":"self",
|
|
"event":"click",
|
|
"actiontype":"urlwidget",
|
|
"target":"app.plaza_cards_panel",
|
|
"mode":"replace",
|
|
"options":{
|
|
"url":"{{entire_url('show_llms_cards.ui')}}"
|
|
}
|
|
}
|
|
]
|
|
}{% for cat in catelogs %},
|
|
{
|
|
"widgettype":"Button",
|
|
"options":{
|
|
"label":"{{cat.name}}",
|
|
"css":"plaza-nav-btn",
|
|
"width":"100%"
|
|
},
|
|
"binds":[
|
|
{
|
|
"wid":"self",
|
|
"event":"click",
|
|
"actiontype":"urlwidget",
|
|
"target":"app.plaza_cards_panel",
|
|
"mode":"replace",
|
|
"options":{
|
|
"url":"{{entire_url('show_llms_cards.ui')}}",
|
|
"params":{
|
|
"catelogid":"{{cat.id}}"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}{% endfor %}
|
|
]
|
|
},
|
|
{
|
|
"widgettype":"VBox",
|
|
"id":"plaza_cards_panel",
|
|
"options":{
|
|
"css":"filler",
|
|
"cwidth":82,
|
|
"height":"100%"
|
|
},
|
|
"subwidgets":[
|
|
{
|
|
"widgettype":"urlwidget",
|
|
"options":{
|
|
"css":"filler",
|
|
"width":"100%",
|
|
"height":"100%",
|
|
"url":"{{entire_url('show_llms_cards.ui')}}"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|