34 lines
1.0 KiB
Plaintext
34 lines
1.0 KiB
Plaintext
# agent_menu_open.dspy - 通用功能弹窗:返回 PopupWindow,内嵌 urlwidget 加载目标 .ui
|
||
# 供 AgentIO 上方功能菜单按钮用(按钮 actiontype=urlwidget 打开本 dspy,通过参数控制弹窗大小)
|
||
# 参数:url(必填) title cwidth cheight
|
||
|
||
import json
|
||
|
||
url = (params_kw or {}).get('url', '') or ''
|
||
title = (params_kw or {}).get('title', '') or '功能'
|
||
cwidth = (params_kw or {}).get('cwidth', '') or '62'
|
||
cheight = (params_kw or {}).get('cheight', '') or '32'
|
||
|
||
if not url:
|
||
return json.dumps({
|
||
"widgettype": "Text",
|
||
"options": {"text": "缺少 url 参数", "cfontsize": 1, "color": "#64748b", "padding": "20px"}
|
||
}, ensure_ascii=False)
|
||
|
||
try:
|
||
cw = float(cwidth)
|
||
except Exception:
|
||
cw = 62
|
||
try:
|
||
ch = float(cheight)
|
||
except Exception:
|
||
ch = 32
|
||
|
||
return json.dumps({
|
||
"widgettype": "PopupWindow",
|
||
"options": {"title": title, "cwidth": cw, "cheight": ch, "auto_open": True},
|
||
"subwidgets": [
|
||
{"widgettype": "urlwidget", "options": {"url": entire_url(url)}}
|
||
]
|
||
}, ensure_ascii=False)
|