From 7c3e77e612b9f2dd0b65fedeece6580a504af4cd Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sat, 30 May 2026 10:54:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20view=5Fassets=20=E2=80=94=20use=20action?= =?UTF-8?q?type:urlwidget=20+=20target=20+=20mode:replace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace custom JS fetch script with proper bricks-native pattern: - actiontype: urlwidget, target: app.rl_asset_results, mode: replace - method: POST in urlwidget options (required for form data) - Remove duplicate id from dspy response widgets (id belongs to container only) --- wwwroot/api/submit_list_assets.dspy | 2 -- wwwroot/view_assets.ui | 10 +++++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/wwwroot/api/submit_list_assets.dspy b/wwwroot/api/submit_list_assets.dspy index 2b1fa65..ac6b518 100644 --- a/wwwroot/api/submit_list_assets.dspy +++ b/wwwroot/api/submit_list_assets.dspy @@ -22,7 +22,6 @@ assets = result.get('assets', []) if not assets: return json.dumps({ "widgettype": "VBox", - "id": "rl_asset_results", "options": {"padding": "16px", "gap": "12px"}, "subwidgets": [ { @@ -131,7 +130,6 @@ for a in assets: # Wrap cards in ResponsableBox for responsive grid result_widget = { "widgettype": "VBox", - "id": "rl_asset_results", "options": {"padding": "16px", "gap": "12px"}, "subwidgets": [ {"widgettype": "Text", "options": {"text": f"共 {len(assets)} 个素材", "fontWeight": "bold"}}, diff --git a/wwwroot/view_assets.ui b/wwwroot/view_assets.ui index 9a9450b..915c041 100644 --- a/wwwroot/view_assets.ui +++ b/wwwroot/view_assets.ui @@ -35,9 +35,13 @@ { "wid": "self", "event": "submit", - "actiontype": "script", - "target": "self", - "script": "(async function(){var form=bricks.getWidgetById('view_assets_form',bricks.app);if(!form)return;var vals=form._getValue();var params=new URLSearchParams();for(var k in vals){if(vals[k]!==undefined&&vals[k]!==null)params.append(k,vals[k])}var url=bricks.app.baseUrl+'/reallife_asset/api/submit_list_assets.dspy?_webbricks_=1';var resp=await fetch(url,{method:'POST',body:params});var desc=await resp.json();var target=bricks.getWidgetById('rl_asset_results',bricks.app);if(!target)return;if(target.destroy_subwidgets)target.destroy_subwidgets();target.subwidgets=[];target.el.innerHTML='';if(desc&&desc.widgettype){await bricks.widgetBuild(desc,target)}})()" + "actiontype": "urlwidget", + "target": "app.rl_asset_results", + "options": { + "method": "POST", + "url": "{{entire_url('api/submit_list_assets.dspy')}}" + }, + "mode": "replace" } ] },