From 39af416625134c44b42743e038b2eda04a36fffa Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 12 Jun 2026 14:28:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AE=B0=E8=B4=A6=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E9=A1=B5=E9=9D=A2=E7=9A=84=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=92=8C=E9=87=8D=E8=AF=95=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复 failed_accounting.ui 中两个按钮的 JavaScript 错误: 查询按钮: - 替换 this.root.getElementById() 为 bricks.getWidgetById() - 替换 DataViewer.load() 为 render() (正确的公开API) - 使用 getValue() 获取输入控件值 重试按钮: - 替换 this.root.getElementById() 为 bricks.getWidgetById() - 替换 selected_row 为 select_row (正确的内部属性名) - 通过 .user_data 访问行数据 - 替换 dv.load() 为 dv.render() - 使用 entire_url() 模板生成正确的 API URL - 改用 async/await 替代 Promise chain 根本原因: 原代码使用了不存在的 bricks API (this.root.getElementById, DataViewer.load, selected_row) --- wwwroot/failed_accounting.ui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wwwroot/failed_accounting.ui b/wwwroot/failed_accounting.ui index 1ca120e..22874e1 100644 --- a/wwwroot/failed_accounting.ui +++ b/wwwroot/failed_accounting.ui @@ -76,7 +76,7 @@ "event": "click", "actiontype": "script", "target": "failed_table", - "script": "var sd = this.root.getElementById('start_date'); var ed = this.root.getElementById('end_date'); var hf = this.root.getElementById('handled_filter'); var params = {handled: hf.value}; if(sd.value) params.start_date = sd.value; if(ed.value) params.end_date = ed.value; this.root.getElementById('failed_table').load(params);" + "script": "var root = bricks.app.root; var sd = bricks.getWidgetById('start_date', root); var ed = bricks.getWidgetById('end_date', root); var hf = bricks.getWidgetById('handled_filter', root); var params = {}; if(hf && hf.getValue()) params.handled = hf.getValue(); if(sd && sd.getValue()) params.start_date = sd.getValue(); if(ed && ed.getValue()) params.end_date = ed.getValue(); await this.render(params);" }] } ] @@ -100,7 +100,7 @@ "event": "click", "actiontype": "script", "target": "self", - "script": "var dv = this.root.getElementById('failed_table'); var row = dv.selected_row || (dv.selected_rows && dv.selected_rows[0]); if(!row || !row.llmusageid) { alert('请先选中一条记录'); return; } var url = bricks.build_url ? bricks.build_url('/llmage/api/retry_accounting.dspy') : '/llmage/api/retry_accounting.dspy'; fetch(url + '?id=' + row.llmusageid).then(function(r){return r.json();}).then(function(d){ if(d.success) { alert(d.message); dv.load({}); } else { alert('失败: ' + d.message); } }).catch(function(e){ alert('请求异常: ' + e); });" + "script": "var dv = bricks.getWidgetById('failed_table', bricks.app.root); if(!dv || !dv.select_row || !dv.select_row.user_data) { alert('请先选中一条记录'); return; } var row = dv.select_row.user_data; if(!row.llmusageid) { alert('记录缺少llmusageid'); return; } var resp = await fetch('{{entire_url('/llmage/api/retry_accounting.dspy')}}?id=' + row.llmusageid); var d = await resp.json(); if(d.success) { alert(d.message); await dv.render({}); } else { alert('失败: ' + d.message); }" }] } ]