- 新增5个后端函数: customer_daily/monthly_models, daily/monthly_summary, daily_trend - 新增customer_usage.ui主页面: 4个汇总卡片 + 日趋势折线图 + 日/月模型柱状图 - 新增3个API端点(.dspy)和3个图表UI组件 - index.ui添加客户专属监控入口卡片 - RBAC权限配置已更新(load_path.py)
463 lines
19 KiB
XML
463 lines
19 KiB
XML
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"width": "100%",
|
|
"height": "100%"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "VScrollPanel",
|
|
"options": {
|
|
"css": "filler"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"width": "100%",
|
|
"alignItems": "center",
|
|
"marginBottom": "24px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Title2",
|
|
"options": {
|
|
"fontWeight": "700",
|
|
"otext": "客户专属监控",
|
|
"i18n": true
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Filler"
|
|
},
|
|
{
|
|
"widgettype": "Button",
|
|
"options": {
|
|
"label": "返回首页",
|
|
"borderRadius": "6px",
|
|
"padding": "6px 16px",
|
|
"fontSize": "13px"
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "click",
|
|
"actiontype": "urlwidget",
|
|
"target": "app.sage_main_content",
|
|
"options": {
|
|
"url": "{{entire_url('/dashboard_for_sage/index.ui')}}"
|
|
},
|
|
"mode": "replace"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "ResponsableBox",
|
|
"options": {
|
|
"gap": "16px",
|
|
"minWidth": "220px",
|
|
"marginBottom": "24px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"css": "stat-card",
|
|
"padding": "20px",
|
|
"borderRadius": "12px",
|
|
"flex": "1",
|
|
"minHeight": "110px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"alignItems": "center",
|
|
"marginBottom": "12px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Svg",
|
|
"options": {
|
|
"svg": "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M3 3v18h18\"/><path d=\"M18 17V9\"/><path d=\"M13 17V5\"/><path d=\"M8 17v-3\"/></svg>",
|
|
"width": "24px",
|
|
"height": "24px"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Filler"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"css": "stat-value",
|
|
"text": "{{get_customer_daily_summary(request).cnt}}",
|
|
"fontSize": "32px",
|
|
"fontWeight": "700",
|
|
"lineHeight": "1.1"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"css": "stat-label",
|
|
"fontSize": "14px",
|
|
"marginTop": "4px",
|
|
"otext": "今日调用次数",
|
|
"i18n": true
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"css": "stat-card",
|
|
"padding": "20px",
|
|
"borderRadius": "12px",
|
|
"flex": "1",
|
|
"minHeight": "110px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"alignItems": "center",
|
|
"marginBottom": "12px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Svg",
|
|
"options": {
|
|
"svg": "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 6v12m6-6H6\"/></svg>",
|
|
"width": "24px",
|
|
"height": "24px"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Filler"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"css": "stat-value",
|
|
"text": "¥{{get_customer_daily_summary(request).total_amount|round(2)}}",
|
|
"fontSize": "32px",
|
|
"fontWeight": "700",
|
|
"lineHeight": "1.1"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"css": "stat-label",
|
|
"fontSize": "14px",
|
|
"marginTop": "4px",
|
|
"otext": "今日消费金额",
|
|
"i18n": true
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"css": "stat-card",
|
|
"padding": "20px",
|
|
"borderRadius": "12px",
|
|
"flex": "1",
|
|
"minHeight": "110px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"alignItems": "center",
|
|
"marginBottom": "12px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Svg",
|
|
"options": {
|
|
"svg": "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/></svg>",
|
|
"width": "24px",
|
|
"height": "24px"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Filler"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"css": "stat-value",
|
|
"text": "{{get_customer_month_summary(request).cnt}}",
|
|
"fontSize": "32px",
|
|
"fontWeight": "700",
|
|
"lineHeight": "1.1"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"css": "stat-label",
|
|
"fontSize": "14px",
|
|
"marginTop": "4px",
|
|
"otext": "本月调用次数",
|
|
"i18n": true
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"css": "stat-card",
|
|
"padding": "20px",
|
|
"borderRadius": "12px",
|
|
"flex": "1",
|
|
"minHeight": "110px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"alignItems": "center",
|
|
"marginBottom": "12px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Svg",
|
|
"options": {
|
|
"svg": "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"/><path d=\"M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6\"/></svg>",
|
|
"width": "24px",
|
|
"height": "24px"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Filler"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"css": "stat-value",
|
|
"text": "¥{{get_customer_month_summary(request).total_amount|round(2)}}",
|
|
"fontSize": "32px",
|
|
"fontWeight": "700",
|
|
"lineHeight": "1.1"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"css": "stat-label",
|
|
"fontSize": "14px",
|
|
"marginTop": "4px",
|
|
"otext": "本月消费金额",
|
|
"i18n": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"css": "card",
|
|
"width": "100%",
|
|
"borderRadius": "12px",
|
|
"padding": "20px",
|
|
"marginBottom": "20px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"width": "100%",
|
|
"alignItems": "center",
|
|
"marginBottom": "16px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Title4",
|
|
"options": {
|
|
"fontWeight": "600",
|
|
"otext": "本月每日调用趋势",
|
|
"i18n": true
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Filler"
|
|
},
|
|
{
|
|
"widgettype": "Button",
|
|
"options": {
|
|
"label": "刷新",
|
|
"border": "none",
|
|
"borderRadius": "6px",
|
|
"padding": "4px 12px",
|
|
"fontSize": "12px"
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "click",
|
|
"actiontype": "method",
|
|
"target": "-@ChartLine",
|
|
"method": "render_urldata",
|
|
"params": {}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "urlwidget",
|
|
"options": {
|
|
"url": "{{entire_url('customer_daily_trend.ui')}}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"width": "100%",
|
|
"gap": "20px",
|
|
"marginBottom": "20px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"css": "card",
|
|
"width": "50%",
|
|
"borderRadius": "12px",
|
|
"padding": "20px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"width": "100%",
|
|
"alignItems": "center",
|
|
"marginBottom": "16px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Title4",
|
|
"options": {
|
|
"fontWeight": "600",
|
|
"otext": "今日各模型调用",
|
|
"i18n": true
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Filler"
|
|
},
|
|
{
|
|
"widgettype": "Button",
|
|
"options": {
|
|
"label": "刷新",
|
|
"border": "none",
|
|
"borderRadius": "6px",
|
|
"padding": "4px 12px",
|
|
"fontSize": "12px"
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "click",
|
|
"actiontype": "method",
|
|
"target": "-@ChartBar",
|
|
"method": "render_urldata",
|
|
"params": {}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "urlwidget",
|
|
"options": {
|
|
"url": "{{entire_url('customer_daily_chart.ui')}}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"css": "card",
|
|
"width": "50%",
|
|
"borderRadius": "12px",
|
|
"padding": "20px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"width": "100%",
|
|
"alignItems": "center",
|
|
"marginBottom": "16px"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Title4",
|
|
"options": {
|
|
"fontWeight": "600",
|
|
"otext": "本月各模型调用",
|
|
"i18n": true
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Filler"
|
|
},
|
|
{
|
|
"widgettype": "Button",
|
|
"options": {
|
|
"label": "刷新",
|
|
"border": "none",
|
|
"borderRadius": "6px",
|
|
"padding": "4px 12px",
|
|
"fontSize": "12px"
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "click",
|
|
"actiontype": "method",
|
|
"target": "-@ChartBar",
|
|
"method": "render_urldata",
|
|
"params": {}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "urlwidget",
|
|
"options": {
|
|
"url": "{{entire_url('customer_monthly_chart.ui')}}"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|