fix: buttons update RefreshWidget directly, VScrollPanel root, cwidth 22
- All filter buttons now script-update rw.opts.url + rw.show_widget() instead of urlwidget target navigation (which silently failed) - Root wrapped in VScrollPanel so scroll position preserved - Card cwidth 25→22 for better column fit - Page buttons also use RefreshWidget update pattern
This commit is contained in:
parent
8a3d30c0c6
commit
a1a6a583e3
@ -4,8 +4,8 @@
|
||||
{% set catelogs = get_llmcatelogs() %}
|
||||
{% set providers = get_llmproviders() %}
|
||||
{
|
||||
"widgettype": "VBox",
|
||||
"options": {"css": "filler", "width": "100%", "height": "100%", "gap": "8px"},
|
||||
"widgettype": "VScrollPanel",
|
||||
"options": {"css": "filler", "width": "100%", "height": "100%"},
|
||||
"subwidgets": [
|
||||
{
|
||||
"widgettype": "VBox",
|
||||
@ -27,56 +27,46 @@
|
||||
},
|
||||
"binds": [{
|
||||
"wid": "self", "event": "search", "actiontype": "script", "target": "self",
|
||||
"script": "var u='{{entire_url('model_plaza.ui')}}?providerid={{active_provider}}&catelogid={{active_catelog}}&search='+encodeURIComponent(event.keyword||'');var t=bricks.getWidgetById('sage_main_content',bricks.app);if(t){t.clear_widgets();bricks.widgetBuild({widgettype:'urlwidget',options:{url:u}},t);}"
|
||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{active_provider}}&catelogid={{active_catelog}}&search='+encodeURIComponent(event.keyword||'');rw.show_widget();}"
|
||||
}]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"widgettype": "VBox",
|
||||
"options": {"width": "100%"},
|
||||
"widgettype": "HBox",
|
||||
"options": {"css": "plaza-catelog-bar", "width": "100%", "wrap": true, "gap": "4px", "padding": "4px 0"},
|
||||
"subwidgets": [
|
||||
{
|
||||
"widgettype": "HBox",
|
||||
"options": {"css": "plaza-catelog-bar", "width": "100%", "wrap": true, "gap": "4px", "padding": "4px 0"},
|
||||
"subwidgets": [
|
||||
{
|
||||
"widgettype": "Button",
|
||||
"id": "cat_all",
|
||||
"options": {
|
||||
"label": "全部",
|
||||
"css": "{{'plaza-cat-btn selected' if not active_catelog else 'plaza-cat-btn'}}",
|
||||
"cwidth": 8, "cheight": 2
|
||||
},
|
||||
"binds": [{
|
||||
"wid": "self", "event": "click", "actiontype": "urlwidget",
|
||||
"target": "sage_main_content", "mode": "replace",
|
||||
"options": {"url": "{{entire_url('model_plaza.ui')}}?providerid={{active_provider}}&search={{active_search}}"}
|
||||
}]
|
||||
}
|
||||
{% for c in catelogs %}
|
||||
,{
|
||||
"widgettype": "Button",
|
||||
"id": "cat_{{c.id}}",
|
||||
"options": {
|
||||
"label": "{{c.name}}",
|
||||
"css": "{{'plaza-cat-btn selected' if active_catelog==c.id else 'plaza-cat-btn'}}",
|
||||
"cwidth": 10, "cheight": 2
|
||||
},
|
||||
"binds": [{
|
||||
"wid": "self", "event": "click", "actiontype": "urlwidget",
|
||||
"target": "sage_main_content", "mode": "replace",
|
||||
"options": {"url": "{{entire_url('model_plaza.ui')}}?providerid={{active_provider}}&catelogid={{c.id}}&search={{active_search}}"}
|
||||
}]
|
||||
}
|
||||
{% endfor %}
|
||||
]
|
||||
"widgettype": "Button",
|
||||
"options": {
|
||||
"label": "全部",
|
||||
"css": "{{'plaza-cat-btn selected' if not active_catelog else 'plaza-cat-btn'}}",
|
||||
"cwidth": 8, "cheight": 2
|
||||
},
|
||||
"binds": [{
|
||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{active_provider}}&search={{active_search}}';rw.show_widget();}"
|
||||
}]
|
||||
}
|
||||
{% for c in catelogs %}
|
||||
,{
|
||||
"widgettype": "Button",
|
||||
"options": {
|
||||
"label": "{{c.name}}",
|
||||
"css": "{{'plaza-cat-btn selected' if active_catelog==c.id else 'plaza-cat-btn'}}",
|
||||
"cwidth": 10, "cheight": 2
|
||||
},
|
||||
"binds": [{
|
||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{active_provider}}&catelogid={{c.id}}&search={{active_search}}';rw.show_widget();}"
|
||||
}]
|
||||
}
|
||||
{% endfor %}
|
||||
]
|
||||
},
|
||||
{
|
||||
"widgettype": "HBox",
|
||||
"options": {"width": "100%", "height": "100%", "flex": "1", "gap": "8px"},
|
||||
"options": {"width": "100%", "flex": "1", "gap": "8px"},
|
||||
"subwidgets": [
|
||||
{
|
||||
"widgettype": "VBox",
|
||||
@ -96,31 +86,27 @@
|
||||
"subwidgets": [
|
||||
{
|
||||
"widgettype": "Button",
|
||||
"id": "prov_all",
|
||||
"options": {
|
||||
"label": "全部供应商",
|
||||
"css": "{{'plaza-prov-btn selected' if not active_provider else 'plaza-prov-btn'}}",
|
||||
"cwidth": 18
|
||||
},
|
||||
"binds": [{
|
||||
"wid": "self", "event": "click", "actiontype": "urlwidget",
|
||||
"target": "sage_main_content", "mode": "replace",
|
||||
"options": {"url": "{{entire_url('model_plaza.ui')}}?catelogid={{active_catelog}}&search={{active_search}}"}
|
||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?catelogid={{active_catelog}}&search={{active_search}}';rw.show_widget();}"
|
||||
}]
|
||||
}
|
||||
{% for p in providers %}
|
||||
,{
|
||||
"widgettype": "Button",
|
||||
"id": "prov_{{p.providerid}}",
|
||||
"options": {
|
||||
"label": "{{p.orgname}}",
|
||||
"css": "{{'plaza-prov-btn selected' if active_provider==p.providerid else 'plaza-prov-btn'}}",
|
||||
"cwidth": 18
|
||||
},
|
||||
"binds": [{
|
||||
"wid": "self", "event": "click", "actiontype": "urlwidget",
|
||||
"target": "sage_main_content", "mode": "replace",
|
||||
"options": {"url": "{{entire_url('model_plaza.ui')}}?providerid={{p.providerid}}&catelogid={{active_catelog}}&search={{active_search}}"}
|
||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{p.providerid}}&catelogid={{active_catelog}}&search={{active_search}}';rw.show_widget();}"
|
||||
}]
|
||||
}
|
||||
{% endfor %}
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
"options": {
|
||||
"css": "plaza-grid",
|
||||
"width": "100%",
|
||||
"col_cwidth": 25,
|
||||
"col_cwidth": 22,
|
||||
"col_cgap": 1
|
||||
},
|
||||
"subwidgets": [
|
||||
@ -33,7 +33,7 @@
|
||||
"widgettype": "VBox",
|
||||
"options": {
|
||||
"css": "card plaza-card",
|
||||
"cwidth": 25,
|
||||
"cwidth": 22,
|
||||
"cheight": 14
|
||||
},
|
||||
"subwidgets": [
|
||||
@ -123,7 +123,7 @@
|
||||
{% if total_pages > 1 %}
|
||||
{
|
||||
"widgettype": "HBox",
|
||||
"options": {"width": "100%", "cheight": 3, "gap": "8px", "alignItems": "center", "justifyContent": "center", "padding": "8px 0"},
|
||||
"options": {"cheight": 3, "gap": "8px", "alignItems": "center", "justifyContent": "center", "padding": "8px 0"},
|
||||
"subwidgets": [
|
||||
{% if page > 1 %}
|
||||
{
|
||||
@ -131,21 +131,18 @@
|
||||
"options": {"label": "上一页", "cwidth": 10},
|
||||
"binds": [{
|
||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||
"script": "var t=bricks.getWidgetById('sage_main_content',bricks.app);if(t){t.clear_widgets();bricks.widgetBuild({widgettype:'urlwidget',options:{url:'{{entire_url('model_plaza.ui')}}?providerid={{providerid}}&catelogid={{catelogid}}&search={{search}}&page={{page - 1}}'}},t);}"
|
||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{providerid}}&catelogid={{catelogid}}&search={{search}}&page={{page - 1}}';rw.show_widget();}"
|
||||
}]
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"widgettype": "Text",
|
||||
"options": {"text": "{{page}} / {{total_pages}} (共{{total}}个)"}
|
||||
},
|
||||
{"widgettype": "Text", "options": {"text": "{{page}}/{{total_pages}} ({{total}}个)"}},
|
||||
{% if page < total_pages %}
|
||||
{
|
||||
"widgettype": "Button",
|
||||
"options": {"label": "下一页", "cwidth": 10},
|
||||
"binds": [{
|
||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||
"script": "var t=bricks.getWidgetById('sage_main_content',bricks.app);if(t){t.clear_widgets();bricks.widgetBuild({widgettype:'urlwidget',options:{url:'{{entire_url('model_plaza.ui')}}?providerid={{providerid}}&catelogid={{catelogid}}&search={{search}}&page={{page + 1}}'}},t);}"
|
||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{providerid}}&catelogid={{catelogid}}&search={{search}}&page={{page + 1}}';rw.show_widget();}"
|
||||
}]
|
||||
}
|
||||
{% endif %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user