- Create menu.ui for each module (customer_management, opportunity_management, contract_management, financial_management, workflow_approval, unified_dashboard)
- Update main app index.ui to use submenu: "{{entire_url('/module/menu.ui')}}" format for each module menu item
- Each menu.ui contains CRUD items for all module tables plus other UI/DSpy functionality
155 lines
5.7 KiB
XML
155 lines
5.7 KiB
XML
{
|
|
"id": "crm_main",
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"width": "100%",
|
|
"height": "100vh",
|
|
"margin": "0",
|
|
"padding": "0"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"height": "56px",
|
|
"background": "#1a73e8",
|
|
"color": "white",
|
|
"alignItems": "center",
|
|
"padding": "0 16px",
|
|
"boxShadow": "0 2px 4px rgba(0,0,0,0.1)"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"text": "CRM系统",
|
|
"fontSize": "20px",
|
|
"fontWeight": "bold",
|
|
"color": "white"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Filler",
|
|
"options": {}
|
|
},
|
|
{
|
|
"widgettype": "Text",
|
|
"id": "lbl_username",
|
|
"options": {
|
|
"text": "用户: admin",
|
|
"color": "white",
|
|
"marginRight": "16px"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Button",
|
|
"id": "btn_logout",
|
|
"options": {
|
|
"label": "退出登录",
|
|
"variant": "text",
|
|
"color": "white"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "HBox",
|
|
"options": {
|
|
"flex": 1,
|
|
"overflow": "hidden"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"width": "220px",
|
|
"background": "#f5f5f5",
|
|
"borderRight": "1px solid #e0e0e0",
|
|
"overflowY": "auto",
|
|
"padding": "8px 0"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Menu",
|
|
"id": "main_menu",
|
|
"options": {
|
|
"items": [
|
|
{
|
|
"name": "dashboard",
|
|
"label": "工作台",
|
|
"icon": "dashboard",
|
|
"submenu": "{{entire_url('/unified_dashboard/menu.ui')}}"
|
|
},
|
|
{
|
|
"name": "customers",
|
|
"label": "客户管理",
|
|
"icon": "people",
|
|
"submenu": "{{entire_url('/customer_management/menu.ui')}}"
|
|
},
|
|
{
|
|
"name": "opportunities",
|
|
"label": "商机管理",
|
|
"icon": "trending_up",
|
|
"submenu": "{{entire_url('/opportunity_management/menu.ui')}}"
|
|
},
|
|
{
|
|
"name": "contracts",
|
|
"label": "合同管理",
|
|
"icon": "description",
|
|
"submenu": "{{entire_url('/contract_management/menu.ui')}}"
|
|
},
|
|
{
|
|
"name": "finance",
|
|
"label": "财务管理",
|
|
"icon": "account_balance",
|
|
"submenu": "{{entire_url('/financial_management/menu.ui')}}"
|
|
},
|
|
{
|
|
"name": "approvals",
|
|
"label": "审批管理",
|
|
"icon": "check_circle",
|
|
"submenu": "{{entire_url('/workflow_approval/menu.ui')}}"
|
|
}
|
|
],
|
|
"width": "100%"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"flex": 1,
|
|
"overflow": "hidden",
|
|
"background": "#fafafa"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Iframe",
|
|
"id": "content_frame",
|
|
"options": {
|
|
"url": "{{entire_url('/unified_dashboard')}}",
|
|
"width": "100%",
|
|
"height": "100%",
|
|
"border": "none"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"binds": [
|
|
{
|
|
"wid": "btn_logout",
|
|
"event": "click",
|
|
"actiontype": "urlwidget",
|
|
"url": "{{entire_url('api/logout.dspy')}}",
|
|
"target": "body/app",
|
|
"options": {
|
|
"method": "POST"
|
|
}
|
|
}
|
|
]
|
|
}
|