opportunity_management/wwwroot/opportunity_management.ui
yumoqing 2547fad996 sync: local modifications to opportunity_management
- Updated core.py, init.py, opportunity_core.py, mysql.ddl.sql
- Updated UI: base.ui, opportunity_management.ui
- Added: opportunity.json, opportunity_stage_history.json
- Added API files: opportunities CRUD, sales_stages_list, check_tables
- Added UI/DSPY: opportunity_edit, opportunity_list, sales_stages_list
2026-04-28 18:54:47 +08:00

47 lines
2.1 KiB
XML

{
"widgettype": "Page",
"options": {
"title": "商机管理",
"style": {"height": "100vh", "padding": "0"}
},
"subwidgets": [
{
"widgettype": "VBox",
"options": {"style": {"padding": "16px", "flex": 1, "overflow": "hidden"}},
"subwidgets": [
{
"widgettype": "HBox",
"options": {"style": {"marginBottom": "16px", "gap": "8px"}},
"subwidgets": [
{"widgettype": "TextField", "id": "search_keyword", "options": {"label": "搜索", "placeholder": "商机名称/客户", "style": {"flex": 1}}},
{"widgettype": "Button", "id": "btn_search", "options": {"text": "搜索", "variant": "primary"}},
{"widgettype": "Button", "id": "btn_add", "options": {"text": "新增", "variant": "primary", "action": "navigate('main/opportunity_management/opportunity_edit.ui')"}}
]
},
{
"widgettype": "DataGrid",
"id": "opportunity_grid",
"options": {
"url": "{{entire_url('api/opportunities_list.dspy')}}",
"style": {"flex": 1},
"columns": [
{"field": "opportunity_name", "header": "商机名称", "width": 200},
{"field": "customer_name", "header": "客户", "width": 150},
{"field": "estimated_amount", "header": "预估金额", "width": 120},
{"field": "current_stage", "header": "阶段", "width": 120},
{"field": "probability", "header": "概率", "width": 80},
{"field": "expected_close_date", "header": "预计成交", "width": 120},
{"field": "owner_name", "header": "负责人", "width": 100},
{"field": "status", "header": "状态", "width": 80}
],
"toolbar": [
{"type": "button", "text": "编辑", "icon": "edit", "action": "navigate('main/opportunity_management/opportunity_edit.ui?id={% raw %}{{selectedRow.id}}{% endraw %}')"},
{"type": "button", "text": "删除", "icon": "delete", "action": "doDelete('{% raw %}{{selectedRow.id}}{% endraw %}')"}
]
}
}
]
}
]
}