From b3b97632acb5269cf57a7ca169ea6099b11f62b9 Mon Sep 17 00:00:00 2001 From: p
Date: Wed, 12 Aug 2026 14:35:53 +0800 Subject: [PATCH] workspace: content in options instead of subwidgets --- wwwroot/api/workspace_popup.dspy | 77 ++++++++++---------------------- 1 file changed, 23 insertions(+), 54 deletions(-) diff --git a/wwwroot/api/workspace_popup.dspy b/wwwroot/api/workspace_popup.dspy index db5accd..cae63e2 100644 --- a/wwwroot/api/workspace_popup.dspy +++ b/wwwroot/api/workspace_popup.dspy @@ -1,4 +1,4 @@ -# workspace_popup.dspy - 返回工作空间 PopupWindow widget 定义 +# workspace_popup.dspy - 返回 PopupWindow,内容直接放 resizebox uid = await get_user() if not uid: @@ -14,9 +14,7 @@ async with DBPools().sqlorContext(dbname) as sor: pname = '' if pid: - proj = await sor.sqlExe( - "SELECT name FROM sd_projects WHERE id=${p}$", - {"p": pid}) + proj = await sor.sqlExe("SELECT name FROM sd_projects WHERE id=${p}$", {"p": pid}) if proj: pname = getattr(proj[0], 'name', '') @@ -25,66 +23,37 @@ async with DBPools().sqlorContext(dbname) as sor: "widgettype": "PopupWindow", "options": { "title": "提示", - "cwidth": 30, - "cheight": 8, - "auto_open": True + "cwidth": 30, "cheight": 8, "auto_open": True }, "subwidgets": [{ "widgettype": "Text", - "options": { - "text": "请先选择项目", - "cfontsize": 1, - "color": "#64748b", - "padding": "20px" - } + "options": {"text": "请先选择项目", "cfontsize": 1, "color": "#64748b", "padding": "20px"} }] } else: + content_widget = { + "widgettype": "Splitter", + "options": {"direction": "horizontal", "split": "30%"}, + "subwidgets": [ + { + "widgettype": "Tree", "id": "ws_tree", + "options": {"dataurl": "/pipeline-sdlc/api/workspace_tree.dspy", "css": "filler", "padding": "4px", "cheight": "100%"}, + "binds": [{"wid": "self", "event": "selected", "actiontype": "urlwidget", "target": "ws_files", "options": {"url": "/pipeline-sdlc/api/workspace_files.dspy"}}] + }, + { + "widgettype": "VScrollPanel", "id": "ws_files", + "options": {"css": "filler", "padding": "8px", "gap": "4px"} + } + ] + } + resp = { "widgettype": "PopupWindow", "options": { "title": pname + " - 工作空间", - "cwidth": 80, - "cheight": 36, - "auto_open": True - }, - "subwidgets": [{ - "widgettype": "Splitter", - "options": { - "direction": "horizontal", - "split": "30%" - }, - "subwidgets": [ - { - "widgettype": "Tree", - "id": "ws_tree", - "options": { - "dataurl": "/pipeline-sdlc/api/workspace_tree.dspy", - "css": "filler", - "padding": "4px", - "cheight": "100%" - }, - "binds": [{ - "wid": "self", - "event": "selected", - "actiontype": "urlwidget", - "target": "ws_files", - "options": { - "url": "/pipeline-sdlc/api/workspace_files.dspy" - } - }] - }, - { - "widgettype": "VScrollPanel", - "id": "ws_files", - "options": { - "css": "filler", - "padding": "8px", - "gap": "4px" - } - } - ] - }] + "cwidth": 80, "cheight": 36, "auto_open": True, + "content": content_widget + } } return json.dumps(resp, ensure_ascii=False)