scaffold-mobile-page 移动页面设计器模块

模块概述

scaffold-mobile-page 是 Scaffold v2 平台的移动端页面设计器模块,提供移动应用的全生命周期管理能力,包括应用创建、页面设计、Schema 管理、发布上线、版本管理和数据源解析。

模块分为设计态和运行态两部分:

  • 设计态:通过后台管理界面创建应用、设计页面 Schema、发布版本
  • 运行态:移动端(uni-app)通过 API 获取已发布的页面 Schema 进行动态渲染

功能列表

应用管理

  • 创建、编辑、删除移动应用
  • 应用发布与下线
  • 版本管理:查询版本列表、版本详情、版本回滚

页面管理

  • 创建、编辑、删除页面
  • 页面 Schema 设计与保存
  • 页面排序管理
  • 页面详情查询

运行态渲染

  • 按应用编码获取渲染数据
  • 按页面 ID 获取页面渲染数据
  • 按版本 ID 获取版本数据
  • 数据源解析(动态 API 调用)

状态字段规范

  • status 字段(应用)遵循布尔语义:1 = 启用,0 = 禁用

核心组件

实体

实体 表名 说明
MpApp mp_app 移动应用
MpAppPage mp_app_page 应用页面
MpAppVersion mp_app_version 应用版本

服务层

服务 说明
MpAppService 应用 CRUD、发布、下线、版本管理、回滚、按编码查询渲染数据
MpAppPageService 页面 CRUD、Schema 保存、排序管理、详情查询
MpDataSourceService 数据源解析,支持动态 API 调用和参数绑定

配置类

说明
MobilePageAutoConfiguration 自动配置类,启用条件 scaffold.mobile-page.enabled=true
MobilePageProperties 配置属性

配置参数

配置前缀:scaffold.mobile-page

参数 类型 默认值 说明
enabled boolean false 是否启用模块(默认关闭,需手动开启)
maxPagesPerApp int 20 每个应用最大页面数
maxComponentsPerPage int 100 每个页面最大组件数

注意:与 scaffold-lowcode 模块中的 MpPage 功能不同,scaffold-mobile-page 是独立的应用级页面设计器,面向完整移动应用的页面编排。

API 接口列表

应用管理(/v1/mobile-page/app)

方法 路径 说明
POST /page 分页查询移动应用
GET /detail/{id} 查询应用详情
POST /create 创建移动应用
POST /update 更新移动应用
POST /delete/{id} 删除移动应用
POST /publish 发布应用
POST /offline/{id} 下线应用
GET /versions/{appId} 查询应用版本列表
GET /version/{versionId} 查询版本详情
POST /rollback 回滚到指定版本

页面管理(/v1/mobile-page/app)

方法 路径 说明
GET /pages/{appId} 查询应用页面列表
GET /page/detail/{pageId} 查询页面详情
POST /page/create 创建页面
POST /page/update 更新页面
POST /page/delete/{pageId} 删除页面
POST /page/save-schema 保存页面 Schema
POST /page/sort 批量更新页面排序

运行态渲染(/v1/mobile-page/render)

方法 路径 说明
GET /app/{appCode} 按应用编码获取渲染数据
GET /page/{pageId} 按页面 ID 获取页面渲染数据
GET /version/{versionId} 按版本 ID 获取版本数据
POST /resolve-data-source 解析数据源

数据源解析

POST /v1/mobile-page/render/resolve-data-source 接受 DataSourceResolveDTO 和可选的 pageParams,由 MpDataSourceService 解析数据源配置并返回动态数据。

使用示例

1. 创建移动应用并发布

POST /v1/mobile-page/app/create           -- 创建应用
POST /v1/mobile-page/app/page/create      -- 创建页面
POST /v1/mobile-page/app/page/save-schema -- 设计页面 Schema
POST /v1/mobile-page/app/page/sort        -- 调整页面顺序
POST /v1/mobile-page/app/publish          -- 发布应用

2. 移动端渲染页面

GET /v1/mobile-page/render/app/{appCode}     -- 获取应用所有页面
GET /v1/mobile-page/render/page/{pageId}     -- 获取单个页面 Schema
POST /v1/mobile-page/render/resolve-data-source -- 解析页面中的数据源

3. 版本管理

GET  /v1/mobile-page/app/versions/{appId}         -- 查看版本列表
GET  /v1/mobile-page/app/version/{versionId}      -- 查看版本详情
POST /v1/mobile-page/app/rollback                 -- 回滚到指定版本

回滚请求体:{ "appId": 123, "version": 2 }

注意事项

  • 模块默认关闭(enabled=false),需在 application.yml 中设置 scaffold.mobile-page.enabled=true 启用
  • 每个应用最多 20 个页面、每个页面最多 100 个组件,可通过配置参数调整
  • 应用发布时会生成版本快照,版本号自增
  • 运行态渲染接口不校验认证,适合移动端直接调用
  • MobilePageAutoConfiguration 会自动注册一个 RestTemplate Bean,供数据源解析使用
  • 本模块与 scaffold-lowcode 中的 MpPage 是两套独立的页面设计器:scaffold-lowcode 的 MpPage 面向单个页面设计,scaffold-mobile-page 面向完整移动应用的页面编排
  • 状态枚举
    • status 字段(应用)遵循布尔语义:1 = 启用,0 = 禁用
    • 移动页面 MpPage.status(未发布/已发布)不遵循布尔语义规范