diff --git a/wwwroot/billing.ui b/wwwroot/billing.ui index 5a29075..e1ff965 100644 --- a/wwwroot/billing.ui +++ b/wwwroot/billing.ui @@ -31,10 +31,11 @@ }, "binds": [ { + "wid": "billing_form", "event": "submit", - "target": "billing_tabular", "actiontype": "script", - "script": "this.render(params); const statsResp = await fetch('{{billing_url}}?start_date=' + params.start_date + '&end_date=' + params.end_date); const statsData = await statsResp.json(); const statsText = bricks.getWidgetById('billing_stats'); if (statsText && statsData.stats) { statsText.dom_element.textContent = '总条数: ' + statsData.stats.total_count + ' | 借方合计: ¥' + parseFloat(statsData.stats.debit_sum).toFixed(2) + ' | 贷方合计: ¥' + parseFloat(statsData.stats.credit_sum).toFixed(2); } const dlBtn = bricks.getWidgetById('billing_download_btn'); if (dlBtn) { dlBtn.dom_element.style.display = 'inline-block'; dlBtn.dom_element.onclick = async function() { const resp = await fetch('{{download_url}}?start_date=' + params.start_date + '&end_date=' + params.end_date); const data = await resp.json(); if (data.status === 'ok') { const byteChars = atob(data.data.content); const byteNumbers = new Array(byteChars.length); for (let i = 0; i < byteChars.length; i++) { byteNumbers[i] = byteChars.charCodeAt(i); } const byteArray = new Uint8Array(byteNumbers); const blob = new Blob([byteArray], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}); const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = data.data.filename; document.body.appendChild(a); a.click(); document.body.removeChild(a); window.URL.revokeObjectURL(url); } }; }" + "target": "billing_form", + "script": "var dv = bricks.getWidgetById('billing_tabular', bricks.app.root); dv.render(params); fetch('{{billing_url}}?start_date=' + params.start_date + '&end_date=' + params.end_date).then(function(r){return r.json()}).then(function(d){var t=bricks.getWidgetById('billing_stats',bricks.app.root);if(t&&d.stats)t.dom_element.textContent='总条数: '+d.stats.total_count+' | 借方合计: ¥'+parseFloat(d.stats.debit_sum).toFixed(2)+' | 贷方合计: ¥'+parseFloat(d.stats.credit_sum).toFixed(2);var b=bricks.getWidgetById('billing_download_btn',bricks.app.root);if(b){b.dom_element.style.display='inline-block';b.dom_element.onclick=function(){fetch('{{download_url}}?start_date='+params.start_date+'&end_date='+params.end_date).then(function(r){return r.json()}).then(function(d){if(d.status==='ok'){var c=atob(d.data.content);var n=new Array(c.length);for(var i=0;i