前台页面设计器:独立 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_typelistdetailformcurrent_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