From 9ebfeb6dda21d79bb814d21355ebd5ba00ca32f2 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 5 May 2026 19:04:03 +0800 Subject: [PATCH] feat: add wwwroot/index.ui as module entry point Integrate all module .ui and .dspy files into a single navigation page using {{entire_url()}} for all path references. --- wwwroot/index.ui | 211 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 wwwroot/index.ui diff --git a/wwwroot/index.ui b/wwwroot/index.ui new file mode 100644 index 0000000..1f3dd42 --- /dev/null +++ b/wwwroot/index.ui @@ -0,0 +1,211 @@ +{ + "widgettype": "VBox", + "options": { + "width": "100%", + "height": "100%", + "padding": "20px", + "backgroundColor": "#F9FAFB" + }, + "subwidgets": [ + { + "widgettype": "Text", + "options": { + "label": "合同管理", + "fontSize": "24px", + "fontWeight": "bold", + "color": "#1E40AF", + "marginBottom": "20px" + } + }, + { + "widgettype": "ResponsableBox", + "options": { + "gap": "16px", + "minWidth": "250px" + }, + "subwidgets": [ + { + "widgettype": "VBox", + "options": { + "backgroundColor": "#FFFFFF", + "borderRadius": "8px", + "padding": "20px", + "boxShadow": "0 1px 3px rgba(0,0,0,0.1)", + "cursor": "pointer" + }, + "binds": [ + { + "wid": "self", + "event": "click", + "actiontype": "urlwidget", + "target": "app.contract_content", + "options": { + "url": "{{entire_url('contract_list.ui')}}" + }, + "mode": "replace" + } + ], + "subwidgets": [ + { + "widgettype": "Text", + "options": { + "label": "合同列表", + "fontSize": "18px", + "fontWeight": "bold", + "color": "#1E40AF" + } + }, + { + "widgettype": "Text", + "options": { + "label": "查看所有合同及执行状态", + "fontSize": "14px", + "color": "#6B7280", + "marginTop": "8px" + } + } + ] + }, + { + "widgettype": "VBox", + "options": { + "backgroundColor": "#FFFFFF", + "borderRadius": "8px", + "padding": "20px", + "boxShadow": "0 1px 3px rgba(0,0,0,0.1)", + "cursor": "pointer" + }, + "binds": [ + { + "wid": "self", + "event": "click", + "actiontype": "urlwidget", + "target": "app.contract_content", + "options": { + "url": "{{entire_url('contract_edit.ui')}}" + }, + "mode": "replace" + } + ], + "subwidgets": [ + { + "widgettype": "Text", + "options": { + "label": "新建合同", + "fontSize": "18px", + "fontWeight": "bold", + "color": "#059669" + } + }, + { + "widgettype": "Text", + "options": { + "label": "创建新的合同记录", + "fontSize": "14px", + "color": "#6B7280", + "marginTop": "8px" + } + } + ] + }, + { + "widgettype": "VBox", + "options": { + "backgroundColor": "#FFFFFF", + "borderRadius": "8px", + "padding": "20px", + "boxShadow": "0 1px 3px rgba(0,0,0,0.1)", + "cursor": "pointer" + }, + "binds": [ + { + "wid": "self", + "event": "click", + "actiontype": "urlwidget", + "target": "app.contract_content", + "options": { + "url": "{{entire_url('contract_detail.ui')}}" + }, + "mode": "replace" + } + ], + "subwidgets": [ + { + "widgettype": "Text", + "options": { + "label": "合同详情", + "fontSize": "18px", + "fontWeight": "bold", + "color": "#D97706" + } + }, + { + "widgettype": "Text", + "options": { + "label": "查看合同详细信息及里程碑", + "fontSize": "14px", + "color": "#6B7280", + "marginTop": "8px" + } + } + ] + }, + { + "widgettype": "VBox", + "options": { + "backgroundColor": "#FFFFFF", + "borderRadius": "8px", + "padding": "20px", + "boxShadow": "0 1px 3px rgba(0,0,0,0.1)", + "cursor": "pointer" + }, + "binds": [ + { + "wid": "self", + "event": "click", + "actiontype": "urlwidget", + "target": "app.contract_content", + "options": { + "url": "{{entire_url('ai_config.ui')}}" + }, + "mode": "replace" + } + ], + "subwidgets": [ + { + "widgettype": "Text", + "options": { + "label": "AI配置", + "fontSize": "18px", + "fontWeight": "bold", + "color": "#7C3AED" + } + }, + { + "widgettype": "Text", + "options": { + "label": "合同AI分析配置", + "fontSize": "14px", + "color": "#6B7280", + "marginTop": "8px" + } + } + ] + } + ] + }, + { + "widgettype": "VBox", + "id": "contract_content", + "options": { + "width": "100%", + "flex": "1", + "marginTop": "20px", + "backgroundColor": "#FFFFFF", + "borderRadius": "8px", + "padding": "20px", + "boxShadow": "0 1px 3px rgba(0,0,0,0.1)" + } + } + ] +}