- Flatten nested style objects directly into options
- Text/Title use 'text', Button uses 'label'
- All paths use {{entire_url()}}
60 lines
2.0 KiB
XML
60 lines
2.0 KiB
XML
{
|
|
"widgettype": "Page",
|
|
"options": {
|
|
"title": "客户交接",
|
|
"height": "100vh",
|
|
"padding": "0"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"padding": "16px",
|
|
"flex": 1,
|
|
"overflow": "hidden"
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "DataGrid",
|
|
"id": "handover_grid",
|
|
"options": {
|
|
"url": "{{entire_url('api/handover_list.dspy')}}",
|
|
"columns": [
|
|
{
|
|
"field": "customer_name",
|
|
"header": "客户名称",
|
|
"width": 200
|
|
},
|
|
{
|
|
"field": "from_owner_name",
|
|
"header": "原负责人",
|
|
"width": 120
|
|
},
|
|
{
|
|
"field": "to_owner_name",
|
|
"header": "新负责人",
|
|
"width": 120
|
|
},
|
|
{
|
|
"field": "handover_reason",
|
|
"header": "交接原因",
|
|
"width": 200
|
|
},
|
|
{
|
|
"field": "status",
|
|
"header": "状态",
|
|
"width": 80
|
|
},
|
|
{
|
|
"field": "created_at",
|
|
"header": "创建时间",
|
|
"width": 150
|
|
}
|
|
],
|
|
"flex": 1
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |