llmage/wwwroot/show_llms_by_providers.ui
yumoqing be3c939955 fix: 模型广场彻底重构 — 移除TabPanel,用VBox+script切换视图
根因链:
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获得确定高度可滚动
2026-06-01 13:44:20 +08:00

85 lines
1.6 KiB
XML

{% set providers = get_llms_sort_by_provider() %}
{
"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_provider_panel",
"mode":"replace",
"options":{
"url":"{{entire_url('show_llms_cards_by_provider.ui')}}"
}
}
]
}{% for p in providers %},
{
"widgettype":"Button",
"options":{
"label":"{{p.orgname}}",
"css":"plaza-nav-btn",
"width":"100%"
},
"binds":[
{
"wid":"self",
"event":"click",
"actiontype":"urlwidget",
"target":"app.plaza_provider_panel",
"mode":"replace",
"options":{
"url":"{{entire_url('show_llms_cards_by_provider.ui')}}",
"params":{
"providerid":"{{p.id}}"
}
}
}
]
}{% endfor %}
]
},
{
"widgettype":"VBox",
"id":"plaza_provider_panel",
"options":{
"css":"filler",
"cwidth":82,
"height":"100%"
},
"subwidgets":[
{
"widgettype":"urlwidget",
"options":{
"css":"filler",
"width":"100%",
"height":"100%",
"url":"{{entire_url('show_llms_cards_by_provider.ui')}}"
}
}
]
}
]
}