From 321b1b7acb8cba31621277c2063b03681a998dd8 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 5 May 2026 19:36:11 +0800 Subject: [PATCH] fix: flatten style to options, fix Button/Text widget properties - Flatten nested style objects directly into options - Text/Title use 'text', Button uses 'label' - All paths use {{entire_url()}} --- wwwroot/base.ui | 18 +-- wwwroot/customer_edit.ui | 242 +++++++++++++++++++++++++++++---------- wwwroot/customer_list.ui | 30 ++--- wwwroot/customer_pool.ui | 92 ++++++++++----- wwwroot/handover_list.ui | 81 ++++++++----- 5 files changed, 315 insertions(+), 148 deletions(-) diff --git a/wwwroot/base.ui b/wwwroot/base.ui index 3ad45c9..12a1ed9 100644 --- a/wwwroot/base.ui +++ b/wwwroot/base.ui @@ -4,28 +4,22 @@ "options": { "width": "100%", "height": "100%", - "style": { - "padding": "16px" - } + "padding": "16px" }, "subwidgets": [ { "widgettype": "HBox", "options": { - "style": { - "marginBottom": "16px", - "gap": "8px" - } + "marginBottom": "16px", + "gap": "8px" }, "subwidgets": [ { "widgettype": "Text", "options": { - "style": { - "fontSize": "20px", - "fontWeight": "bold" - }, - "text": "客户管理" + "text": "客户管理", + "fontSize": "20px", + "fontWeight": "bold" } }, { diff --git a/wwwroot/customer_edit.ui b/wwwroot/customer_edit.ui index 5a06d9d..6bd4d33 100644 --- a/wwwroot/customer_edit.ui +++ b/wwwroot/customer_edit.ui @@ -1,65 +1,185 @@ { - "widgettype": "Page", - "options": { - "title": "客户编辑", - "style": {"height": "100vh", "padding": "0"} - }, - "subwidgets": [ - { - "widgettype": "VBox", - "options": {"style": {"padding": "16px", "flex": 1, "overflow": "auto"}}, - "subwidgets": [ + "widgettype": "Page", + "options": { + "title": "客户编辑", + "height": "100vh", + "padding": "0" + }, + "subwidgets": [ { - "widgettype": "Form", - "id": "customer_form", - "options": { - "submit_url": "{{entire_url('api/customers_create.dspy')}}", - "method": "POST", - "layout": "vertical", - "style": {"maxWidth": "600px"}, - "fields": [ - {"name": "customer_name", "label": "客户名称", "uitype": "text", "required": true}, - {"name": "customer_type", "label": "客户类型", "uitype": "code", "required": true, "data": [ - {"value": "enterprise", "text": "企业客户"}, - {"value": "individual", "text": "个人客户"}, - {"value": "government", "text": "政府客户"} - ]}, - {"name": "contact_person", "label": "联系人", "uitype": "text"}, - {"name": "phone", "label": "电话", "uitype": "text"}, - {"name": "email", "label": "邮箱", "uitype": "text"}, - {"name": "tax_id", "label": "税号", "uitype": "text"}, - {"name": "industry", "label": "行业", "uitype": "code", "data": [ - {"value": "manufacturing", "text": "制造业"}, - {"value": "technology", "text": "科技"}, - {"value": "finance", "text": "金融"}, - {"value": "retail", "text": "零售"}, - {"value": "other", "text": "其他"} - ]}, - {"name": "customer_level", "label": "客户等级", "uitype": "code", "data": [ - {"value": "potential", "text": "潜在客户"}, - {"value": "active", "text": "活跃客户"}, - {"value": "vip", "text": "VIP客户"} - ]}, - {"name": "address", "label": "地址", "uitype": "textarea"}, - {"name": "owner_id", "label": "负责人", "uitype": "text", "required": true}, - {"name": "region", "label": "区域", "uitype": "code", "data": [ - {"value": "east", "text": "华东"}, - {"value": "south", "text": "华南"}, - {"value": "west", "text": "华西"}, - {"value": "north", "text": "华北"} - ]}, - {"name": "status", "label": "状态", "uitype": "code", "data": [ - {"value": "active", "text": "有效"}, - {"value": "inactive", "text": "无效"} - ]} - ], - "buttons": [ - {"type": "submit", "text": "保存", "variant": "primary"}, - {"type": "button", "text": "取消", "action": "navigate('main/customer_management/customer_list.ui')"} + "widgettype": "VBox", + "options": { + "padding": "16px", + "flex": 1, + "overflow": "auto" + }, + "subwidgets": [ + { + "widgettype": "Form", + "id": "customer_form", + "options": { + "submit_url": "{{entire_url('api/customers_create.dspy')}}", + "method": "POST", + "layout": "vertical", + "fields": [ + { + "name": "customer_name", + "label": "客户名称", + "uitype": "text", + "required": true + }, + { + "name": "customer_type", + "label": "客户类型", + "uitype": "code", + "required": true, + "data": [ + { + "value": "enterprise", + "text": "企业客户" + }, + { + "value": "individual", + "text": "个人客户" + }, + { + "value": "government", + "text": "政府客户" + } + ] + }, + { + "name": "contact_person", + "label": "联系人", + "uitype": "text" + }, + { + "name": "phone", + "label": "电话", + "uitype": "text" + }, + { + "name": "email", + "label": "邮箱", + "uitype": "text" + }, + { + "name": "tax_id", + "label": "税号", + "uitype": "text" + }, + { + "name": "industry", + "label": "行业", + "uitype": "code", + "data": [ + { + "value": "manufacturing", + "text": "制造业" + }, + { + "value": "technology", + "text": "科技" + }, + { + "value": "finance", + "text": "金融" + }, + { + "value": "retail", + "text": "零售" + }, + { + "value": "other", + "text": "其他" + } + ] + }, + { + "name": "customer_level", + "label": "客户等级", + "uitype": "code", + "data": [ + { + "value": "potential", + "text": "潜在客户" + }, + { + "value": "active", + "text": "活跃客户" + }, + { + "value": "vip", + "text": "VIP客户" + } + ] + }, + { + "name": "address", + "label": "地址", + "uitype": "textarea" + }, + { + "name": "owner_id", + "label": "负责人", + "uitype": "text", + "required": true + }, + { + "name": "region", + "label": "区域", + "uitype": "code", + "data": [ + { + "value": "east", + "text": "华东" + }, + { + "value": "south", + "text": "华南" + }, + { + "value": "west", + "text": "华西" + }, + { + "value": "north", + "text": "华北" + } + ] + }, + { + "name": "status", + "label": "状态", + "uitype": "code", + "data": [ + { + "value": "active", + "text": "有效" + }, + { + "value": "inactive", + "text": "无效" + } + ] + } + ], + "buttons": [ + { + "type": "submit", + "text": "保存", + "variant": "primary" + }, + { + "type": "button", + "text": "取消", + "action": "navigate('main/customer_management/customer_list.ui')" + } + ], + "maxWidth": "600px" + } + } ] - } } - ] - } - ] -} + ] +} \ No newline at end of file diff --git a/wwwroot/customer_list.ui b/wwwroot/customer_list.ui index 7e47fb9..fbf5c9c 100644 --- a/wwwroot/customer_list.ui +++ b/wwwroot/customer_list.ui @@ -2,29 +2,23 @@ "widgettype": "Page", "options": { "title": "客户列表", - "style": { - "height": "100vh", - "padding": "0" - } + "height": "100vh", + "padding": "0" }, "subwidgets": [ { "widgettype": "VBox", "options": { - "style": { - "padding": "16px", - "flex": 1, - "overflow": "hidden" - } + "padding": "16px", + "flex": 1, + "overflow": "hidden" }, "subwidgets": [ { "widgettype": "HBox", "options": { - "style": { - "marginBottom": "16px", - "gap": "8px" - } + "marginBottom": "16px", + "gap": "8px" }, "subwidgets": [ { @@ -33,9 +27,7 @@ "options": { "label": "搜索", "placeholder": "客户名称/编码", - "style": { - "flex": 1 - } + "flex": 1 } }, { @@ -53,9 +45,6 @@ "id": "customer_grid", "options": { "url": "{{entire_url('api/customers_list.dspy')}}", - "style": { - "flex": 1 - }, "columns": [ { "field": "customer_code", @@ -112,7 +101,8 @@ "icon": "delete", "action": "doDelete('{% raw %}{{selectedRow.id}}{% endraw %}')" } - ] + ], + "flex": 1 } } ] diff --git a/wwwroot/customer_pool.ui b/wwwroot/customer_pool.ui index 4367bdc..330d874 100644 --- a/wwwroot/customer_pool.ui +++ b/wwwroot/customer_pool.ui @@ -1,34 +1,68 @@ { - "widgettype": "Page", - "options": { - "title": "客户公海", - "style": {"height": "100vh", "padding": "0"} - }, - "subwidgets": [ - { - "widgettype": "VBox", - "options": {"style": {"padding": "16px", "flex": 1, "overflow": "hidden"}}, - "subwidgets": [ + "widgettype": "Page", + "options": { + "title": "客户公海", + "height": "100vh", + "padding": "0" + }, + "subwidgets": [ { - "widgettype": "DataGrid", - "id": "pool_grid", - "options": { - "url": "{{entire_url('api/customer_pool_list.dspy')}}", - "style": {"flex": 1}, - "columns": [ - {"field": "customer_code", "header": "客户编码", "width": 120}, - {"field": "customer_name", "header": "客户名称", "width": 200}, - {"field": "industry", "header": "行业", "width": 120}, - {"field": "recycle_reason", "header": "回收原因", "width": 150}, - {"field": "pool_status", "header": "状态", "width": 80}, - {"field": "recycle_time", "header": "回收时间", "width": 150} - ], - "toolbar": [ - {"type": "button", "text": "领取", "icon": "get_app", "action": "claimCustomer('{% raw %}{{selectedRow.id}}{% endraw %}')"} + "widgettype": "VBox", + "options": { + "padding": "16px", + "flex": 1, + "overflow": "hidden" + }, + "subwidgets": [ + { + "widgettype": "DataGrid", + "id": "pool_grid", + "options": { + "url": "{{entire_url('api/customer_pool_list.dspy')}}", + "columns": [ + { + "field": "customer_code", + "header": "客户编码", + "width": 120 + }, + { + "field": "customer_name", + "header": "客户名称", + "width": 200 + }, + { + "field": "industry", + "header": "行业", + "width": 120 + }, + { + "field": "recycle_reason", + "header": "回收原因", + "width": 150 + }, + { + "field": "pool_status", + "header": "状态", + "width": 80 + }, + { + "field": "recycle_time", + "header": "回收时间", + "width": 150 + } + ], + "toolbar": [ + { + "type": "button", + "text": "领取", + "icon": "get_app", + "action": "claimCustomer('{% raw %}{{selectedRow.id}}{% endraw %}')" + } + ], + "flex": 1 + } + } ] - } } - ] - } - ] + ] } \ No newline at end of file diff --git a/wwwroot/handover_list.ui b/wwwroot/handover_list.ui index a32cae1..6b68ead 100644 --- a/wwwroot/handover_list.ui +++ b/wwwroot/handover_list.ui @@ -1,31 +1,60 @@ { - "widgettype": "Page", - "options": { - "title": "客户交接", - "style": {"height": "100vh", "padding": "0"} - }, - "subwidgets": [ - { - "widgettype": "VBox", - "options": {"style": {"padding": "16px", "flex": 1, "overflow": "hidden"}}, - "subwidgets": [ + "widgettype": "Page", + "options": { + "title": "客户交接", + "height": "100vh", + "padding": "0" + }, + "subwidgets": [ { - "widgettype": "DataGrid", - "id": "handover_grid", - "options": { - "url": "{{entire_url('api/handover_list.dspy')}}", - "style": {"flex": 1}, - "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} + "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 + } + } ] - } } - ] - } - ] + ] } \ No newline at end of file