From cd5897414662d672779d4082c1359a2be393b9c7 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 8 Sep 2026 18:01:30 +0800 Subject: [PATCH] fix(storefront): getWidgetById start point must be bricks.app not app.root - popup DOM is body sibling outside app.root subtree; pay button previously read default values ignoring user input --- wwwroot/storefront/api/purchase_confirm.dspy | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/wwwroot/storefront/api/purchase_confirm.dspy b/wwwroot/storefront/api/purchase_confirm.dspy index 2119a48..b713058 100644 --- a/wwwroot/storefront/api/purchase_confirm.dspy +++ b/wwwroot/storefront/api/purchase_confirm.dspy @@ -102,20 +102,20 @@ else: "var params=new URLSearchParams();" "params.append('product_id',pid);" "if(pt=='workspace_storage'){" - " var gb=bricks.getWidgetById('buy_storage_gb',bricks.app.root);" - " var mo=bricks.getWidgetById('buy_valid_months',bricks.app.root);" + " var gb=bricks.getWidgetById('buy_storage_gb',bricks.app);" + " var mo=bricks.getWidgetById('buy_valid_months',bricks.app);" " var gbv=gb?gb.resultValue():0; var mov=mo?mo.resultValue():1;" " if(gbv&&gbv>0)params.append('storage_gb',gbv);" " if(mov&&mov>0)params.append('valid_months',mov);" "}else if(pt=='pipeline'){" - " var cm=bricks.getWidgetById('buy_charge_mode',bricks.app.root);" + " var cm=bricks.getWidgetById('buy_charge_mode',bricks.app);" " params.append('charge_mode',cm?(cm.value||'month'):'month');" "}" - "var tw=bricks.getWidgetById('buy_price_text',bricks.app.root);" + "var tw=bricks.getWidgetById('buy_price_text',bricks.app);" "if(tw)tw.set_text('计算中...');" "fetch('/product_management/storefront/api/calc_price.dspy'," "{method:'POST',body:params}).then(function(r){return r.json()}).then(function(d){" - " var t=bricks.getWidgetById('buy_price_text',bricks.app.root); if(!t)return;" + " var t=bricks.getWidgetById('buy_price_text',bricks.app); if(!t)return;" " if(d.success){var s='应付金额:¥ '+(Math.round(d.amount*100)/100).toFixed(2);" " if(Math.abs((d.discount||1)-1)>1e-9){" " s+='(原价 ¥ '+(Math.round(d.original_amount*100)/100).toFixed(2)" @@ -123,7 +123,7 @@ else: " t.set_text(s);t.dom_element.style.color='#e74c3c';" " }else{t.set_text('算价失败:'+(d.message||''));t.dom_element.style.color='#e67e22';}" "}).catch(function(e){" - " var t=bricks.getWidgetById('buy_price_text',bricks.app.root);" + " var t=bricks.getWidgetById('buy_price_text',bricks.app);" " if(t){t.set_text('算价请求失败:'+e);t.dom_element.style.color='#e67e22';}" "})" ) @@ -198,8 +198,8 @@ else: ) if is_storage: pay_script += ( - "var gb=bricks.getWidgetById('buy_storage_gb',bricks.app.root);" - "var mo=bricks.getWidgetById('buy_valid_months',bricks.app.root);" + "var gb=bricks.getWidgetById('buy_storage_gb',bricks.app);" + "var mo=bricks.getWidgetById('buy_valid_months',bricks.app);" "var gbv=gb?gb.resultValue():100; var mov=mo?mo.resultValue():1;" "if(!gbv||gbv<=0){alert('请输入购买容量');return;}" "if(!mov||mov<=0){alert('请输入购买月数');return;}" @@ -208,7 +208,7 @@ else: ) if is_pipeline: pay_script += ( - "var cm=bricks.getWidgetById('buy_charge_mode',bricks.app.root);" + "var cm=bricks.getWidgetById('buy_charge_mode',bricks.app);" "var cmv=cm?(cm.value||'month'):'month';" "params.append('charge_mode',cmv);" )