fix: WebWidget script用{%set%}+json.dumps包裹,修复JSON转义错误
This commit is contained in:
parent
8da46acbce
commit
3b9391b582
@ -1,2 +1,2 @@
|
||||
{% set amt = j2_realtime_amount(request) %}
|
||||
{"widgettype":"VBox","options":{"css":"card","padding":"12px","borderRadius":"8px","width":"100%"},"subwidgets":[{"widgettype":"Text","options":{"text":"今日交易金额","fontSize":"11px","color":"var(--sage-text-secondary)"}},{"widgettype":"Text","options":{"text":"¥{{'%.2f' % amt}}","fontWeight":"700","fontSize":"18px","marginTop":"4px"}}]}
|
||||
{"widgettype":"VBox","options":{"css":"card","padding":"12px","borderRadius":"8px","width":"100%"},"subwidgets":[{"widgettype":"Text","options":{"text":"今日交易金额","fontSize":"11px","color":"var(--sage-text-secondary)"}},{"widgettype":"Text","options":{"text":{{json.dumps('¥' + ('%.2f' % amt) if amt else '¥0.00',ensure_ascii=False)}},"fontWeight":"700","fontSize":"18px","marginTop":"4px"}}]}
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
{% set data = j2_currency_data(request) %}
|
||||
{% set chart_data = [] %}{% for r in data %}{% set _ = chart_data.append({"name": r.get("currency",""), "value": r.get("call_count",0)}) %}{% endfor %}
|
||||
{% set script %}(function(){var c=echarts.init(document.getElementById('chart_currency'));c.setOption({tooltip:{trigger:'item'},series:[{type:'pie',radius:['45%','70%'],center:['50%','55%'],data:{{json.dumps(chart_data,ensure_ascii=False)}},label:{show:true,formatter:'{b} {c}次({d}%)'}}]});window.addEventListener('resize',function(){c.resize()});})();{% endset %}
|
||||
{
|
||||
"widgettype": "WebWidget",
|
||||
"options": {
|
||||
"height": "200px",
|
||||
"html": "<div id=\"chart_currency\" style=\"width:100%;height:200px;\"></div>",
|
||||
"script": "(function(){var c=echarts.init(document.getElementById('chart_currency'));c.setOption({tooltip:{trigger:'item'},series:[{type:'pie',radius:['45%','70%'],center:['50%','55%'],data:{{json.dumps(chart_data,ensure_ascii=False)}},label:{show:true,formatter:'{b} {c}次({d}%)'},emphasis:{itemStyle:{shadowBlur:10,shadowColor:'rgba(0,0,0,0.3)'}}}]});window.addEventListener('resize',function(){c.resize()});})();"
|
||||
"script": {{json.dumps(script, ensure_ascii=False)}}
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,15 +11,12 @@
|
||||
{"widgettype":"Text","options":{"text":"金额","width":"20%","fontSize":"11px","color":"var(--sage-text-secondary)"}}
|
||||
]}
|
||||
{% for r in data %}
|
||||
,{"widgettype":"HBox","options":{"cheight":2,"width":"100%","borderBottom":"1px solid var(--sage-border-color)","padding":"2px 8px"},"subwidgets":[
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps(r.get('model',''),ensure_ascii=False)}},"width":"30%","fontSize":"12px"}},
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps((r.get('avg_ttft_ms','')|string)+'ms',ensure_ascii=False)}},"width":"15%","fontSize":"12px"}},
|
||||
{"widgettype":"HBox","options":{"width":"15%"},"subwidgets":[
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps((r.get('success_rate','')|string)+'%',ensure_ascii=False)}},"fontSize":"11px","width":"auto"}},
|
||||
{"widgettype":"Filler"}
|
||||
]},
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps(r.get('total_calls','')|string,ensure_ascii=False)}},"width":"20%","fontSize":"12px"}},
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps('¥'+(r.get('total_amount_cny',0)|string),ensure_ascii=False)}},"width":"20%","fontSize":"12px"}}
|
||||
,{"widgettype":"HBox","options":{"cheight":2,"width":"100%","padding":"2px 8px"},"subwidgets":[
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps(r.get("model",""),ensure_ascii=False)}},"width":"30%","fontSize":"12px"}},
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps(r.get("avg_ttft_ms",""),ensure_ascii=False)}},"width":"15%","fontSize":"12px"}},
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps(r.get("success_rate",""),ensure_ascii=False)}},"width":"15%","fontSize":"12px"}},
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps(r.get("total_calls",""),ensure_ascii=False)}},"width":"20%","fontSize":"12px"}},
|
||||
{"widgettype":"Text","options":{"text":{{json.dumps(r.get("total_amount_cny",""),ensure_ascii=False)}},"width":"20%","fontSize":"12px"}}
|
||||
]}
|
||||
{% endfor %}
|
||||
]
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
{% set data = j2_provider_roi_data(request) %}
|
||||
{% set bubble_data = [] %}{% for r in data %}{% set _ = bubble_data.append([r.get("unit_price",0)|float, r.get("avg_ttft_ms",0)|float, r.get("total_calls",0)|int, r.get("model","")]) %}{% endfor %}
|
||||
{% set script %}(function(){var c=echarts.init(document.getElementById('chart_provider_roi'));c.setOption({tooltip:{trigger:'item',formatter:function(p){return p.data[3]+'<br/>单价:'+p.data[0]+'/t<br/>延迟:'+p.data[1]+'ms<br/>调用:'+p.data[2]+'次'}},xAxis:{type:'value',name:'单价(¥/t)',nameLocation:'center',nameGap:25},yAxis:{type:'value',name:'延迟(ms)',nameLocation:'center',nameGap:35},series:[{type:'scatter',symbolSize:function(d){return Math.max(8,Math.sqrt(d[2])*0.5)},data:{{json.dumps(bubble_data,ensure_ascii=False)}},label:{show:true,formatter:function(p){return p.data[3]},position:'top',fontSize:10}}]});window.addEventListener('resize',function(){c.resize()});})();{% endset %}
|
||||
{
|
||||
"widgettype": "WebWidget",
|
||||
"options": {
|
||||
"height": "240px",
|
||||
"html": "<div id=\"chart_provider_roi\" style=\"width:100%;height:240px;\"></div>",
|
||||
"script": "(function(){var c=echarts.init(document.getElementById('chart_provider_roi'));c.setOption({tooltip:{trigger:'item',formatter:function(p){return p.data[3]+'<br/>单价:'+p.data[0]+'/t<br/>延迟:'+p.data[1]+'ms<br/>调用:'+p.data[2]+'次'}},xAxis:{type:'value',name:'单价(¥/t)',nameLocation:'center',nameGap:25},yAxis:{type:'value',name:'延迟(ms)',nameLocation:'center',nameGap:35},series:[{type:'scatter',symbolSize:function(d){return Math.max(8,Math.sqrt(d[2])*0.5)},data:{{json.dumps(bubble_data,ensure_ascii=False)}},label:{show:true,formatter:function(p){return p.data[3]},position:'top',fontSize:10}}]});window.addEventListener('resize',function(){c.resize()});})();"
|
||||
"script": {{json.dumps(script, ensure_ascii=False)}}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
{% set data = j2_top_models_data(request) %}
|
||||
{% set names = [] %}{% set vals = [] %}{% for r in data %}{% set _ = names.append(r.get("model_name","")) %}{% set _ = vals.append(r.get("cnt",0)) %}{% endfor %}
|
||||
{% set script %}(function(){var c=echarts.init(document.getElementById('chart_top_models'));c.setOption({tooltip:{trigger:'axis'},grid:{left:10,right:20,top:5,bottom:5,containLabel:true},xAxis:{type:'value'},yAxis:{type:'category',data:{{json.dumps(names,ensure_ascii=False)}},inverse:true,axisLabel:{fontSize:11}},series:[{type:'bar',data:{{json.dumps(vals,ensure_ascii=False)}},barMaxWidth:20,label:{show:true,position:'right',fontSize:11}}]});window.addEventListener('resize',function(){c.resize()});})();{% endset %}
|
||||
{
|
||||
"widgettype": "WebWidget",
|
||||
"options": {
|
||||
"height": "200px",
|
||||
"html": "<div id=\"chart_top_models\" style=\"width:100%;height:200px;\"></div>",
|
||||
"script": "(function(){var c=echarts.init(document.getElementById('chart_top_models'));c.setOption({tooltip:{trigger:'axis'},grid:{left:10,right:20,top:5,bottom:5,containLabel:true},xAxis:{type:'value'},yAxis:{type:'category',data:{{json.dumps(names,ensure_ascii=False)}},inverse:true,axisLabel:{fontSize:11}},series:[{type:'bar',data:{{json.dumps(vals,ensure_ascii=False)}},barMaxWidth:20,label:{show:true,position:'right',fontSize:11}}]});window.addEventListener('resize',function(){c.resize()});})();"
|
||||
"script": {{json.dumps(script, ensure_ascii=False)}}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
{% set data = j2_top_providers_data(request) %}
|
||||
{% set names = [] %}{% set vals = [] %}{% for r in data %}{% set _ = names.append(r.get("provider_name","")) %}{% set _ = vals.append(r.get("total_amount",0)) %}{% endfor %}
|
||||
{% set script %}(function(){var c=echarts.init(document.getElementById('chart_top_providers'));c.setOption({tooltip:{trigger:'axis'},grid:{left:10,right:50,top:5,bottom:5,containLabel:true},xAxis:{type:'value'},yAxis:{type:'category',data:{{json.dumps(names,ensure_ascii=False)}},inverse:true,axisLabel:{fontSize:11}},series:[{type:'bar',data:{{json.dumps(vals,ensure_ascii=False)}},barMaxWidth:20,label:{show:true,position:'right',formatter:'¥{c}',fontSize:11}}]});window.addEventListener('resize',function(){c.resize()});})();{% endset %}
|
||||
{
|
||||
"widgettype": "WebWidget",
|
||||
"options": {
|
||||
"height": "200px",
|
||||
"html": "<div id=\"chart_top_providers\" style=\"width:100%;height:200px;\"></div>",
|
||||
"script": "(function(){var c=echarts.init(document.getElementById('chart_top_providers'));c.setOption({tooltip:{trigger:'axis'},grid:{left:10,right:50,top:5,bottom:5,containLabel:true},xAxis:{type:'value'},yAxis:{type:'category',data:{{json.dumps(names,ensure_ascii=False)}},inverse:true,axisLabel:{fontSize:11}},series:[{type:'bar',data:{{json.dumps(vals,ensure_ascii=False)}},barMaxWidth:20,label:{show:true,position:'right',formatter:'¥{c}',fontSize:11}}]});window.addEventListener('resize',function(){c.resize()});})();"
|
||||
"script": {{json.dumps(script, ensure_ascii=False)}}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
{% set data = j2_top_users_data(request) %}
|
||||
{% set names = [] %}{% set vals = [] %}{% for r in data %}{% set _ = names.append(r.get("user_name","")) %}{% set _ = vals.append(r.get("total_amount",0)) %}{% endfor %}
|
||||
{% set script %}(function(){var c=echarts.init(document.getElementById('chart_top_users'));c.setOption({tooltip:{trigger:'axis'},grid:{left:10,right:50,top:5,bottom:5,containLabel:true},xAxis:{type:'value'},yAxis:{type:'category',data:{{json.dumps(names,ensure_ascii=False)}},inverse:true,axisLabel:{fontSize:11}},series:[{type:'bar',data:{{json.dumps(vals,ensure_ascii=False)}},barMaxWidth:20,label:{show:true,position:'right',formatter:'¥{c}',fontSize:11}}]});window.addEventListener('resize',function(){c.resize()});})();{% endset %}
|
||||
{
|
||||
"widgettype": "WebWidget",
|
||||
"options": {
|
||||
"height": "200px",
|
||||
"html": "<div id=\"chart_top_users\" style=\"width:100%;height:200px;\"></div>",
|
||||
"script": "(function(){var c=echarts.init(document.getElementById('chart_top_users'));c.setOption({tooltip:{trigger:'axis'},grid:{left:10,right:50,top:5,bottom:5,containLabel:true},xAxis:{type:'value'},yAxis:{type:'category',data:{{json.dumps(names,ensure_ascii=False)}},inverse:true,axisLabel:{fontSize:11}},series:[{type:'bar',data:{{json.dumps(vals,ensure_ascii=False)}},barMaxWidth:20,label:{show:true,position:'right',formatter:'¥{c}',fontSize:11}}]});window.addEventListener('resize',function(){c.resize()});})();"
|
||||
"script": {{json.dumps(script, ensure_ascii=False)}}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user