前台页面设计器:独立 page_design 存储
页面设计从 appBlueprint 中拆出来,成为项目内独立主数据。appBlueprint 仍负责角色、菜单、页面入口;page_design 负责布局、字段、按钮、权限、生成参数。
数据流
appBlueprint生成菜单与页面入口,确定 pageCode
page_design每个前台页面一条设计记录
Designer UI读取/保存 layout_json 与 action_json
Generator合并表字段、业务动作、页面设计
Vue 模板生成用户前台页面代码
front_project_page_design 表
| 字段 | 作用 |
|---|---|
| design_id | 页面设计 ID |
| project_id / user_id | 归属项目与用户 |
| page_code | 关联 appBlueprint.frontendPages[].code |
| menu_code | 关联前台菜单 |
| page_name / route_path | 页面显示名与路由 |
| page_type | listdetailformcurrent_user_list |
| table_name | 绑定业务表 |
| layout_json | 区域、字段、排序、组件配置 |
| action_json | 按钮、业务动作、刷新规则 |
| status / version | 草稿状态和乐观锁版本 |
layout_json 示例
{
"canvas": "frontend-list-v1",
"regions": [
{
"id": "query",
"type": "query",
"fields": ["title", "category", "status"]
},
{
"id": "toolbar",
"type": "toolbar",
"actions": ["create", "export", "batchDelete"]
},
{
"id": "table",
"type": "table",
"fields": ["cover", "title", "author", "stock", "status"],
"rowActions": ["view", "edit", "delete"]
},
{
"id": "form",
"type": "dialogForm",
"fields": ["title", "author", "category", "price"]
}
]
}
一期接口
GET /page-designs读取项目页面设计列表
POST /page-designs/init从 appBlueprint 初始化设计记录
GET /page-designs/{id}读取单页设计
PUT /page-designs/{id}保存布局和动作
POST /preview生成项目时读取 page_design