fix: 模型广场导航找不到目标 — 内联布局替代嵌套urlwidget
根因:TabPanel tab content通过urlwidget加载show_llms.ui时, urlwidget渲染后替换自身DOM,导致plaza_cards_panel的id丢失, getWidgetById()返回null。 修复:将左右分栏布局直接内联到model_plaza.ui的TabPanel tab content中, plaza_cards_panel改为VBox容器(保持id),初始内容通过子urlwidget加载, 点击导航按钮时用mode:replace替换VBox内容。
This commit is contained in:
parent
063e158989
commit
fed36ff079
@ -1,3 +1,5 @@
|
||||
{% set catelogs = get_llmcatelogs() %}
|
||||
{% set providers = get_llms_sort_by_provider() %}
|
||||
{
|
||||
"widgettype": "VBox",
|
||||
"options": {
|
||||
@ -42,20 +44,174 @@
|
||||
"name": "by_catelog",
|
||||
"label": "按分类",
|
||||
"content": {
|
||||
"widgettype": "urlwidget",
|
||||
"widgettype": "HBox",
|
||||
"options": {
|
||||
"url": "{{entire_url('show_llms.ui')}}"
|
||||
}
|
||||
"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')}}"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "by_provider",
|
||||
"label": "按供应商",
|
||||
"content": {
|
||||
"widgettype": "urlwidget",
|
||||
"widgettype": "HBox",
|
||||
"options": {
|
||||
"url": "{{entire_url('show_llms_by_providers.ui')}}"
|
||||
}
|
||||
"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')}}"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user