3.4 KiB
3.4 KiB
阶段一:模块管理
目标
在不开发通用 ModuleTable、ModuleForm 的前提下,完成可通过页面操作验证的模块管理纵向闭环。
本阶段范围
- 建立模块、字段、表单分组、选项来源和功能节点的数据库结构。
- 写入模块管理自身的种子配置。
- 复用现有通用查询、分页和事务保存接口。
- 提供手写的功能树与模块详情工作区。
- 支持模块基本信息、字段设计、表单分组、菜单绑定和功能树位置维护。
- 统一将 SQL Server
bigint作为字符串返回前端,避免雪花 ID 精度丢失。
数据库对象
| 对象 | 用途 |
|---|---|
dbo.s_module |
模块定义 |
dbo.s_module_field |
模块字段配置 |
dbo.s_module_group |
表单分组配置 |
dbo.s_option_source |
固定或模块查询选项来源 |
dbo.s_option_item |
固定选项明细 |
dbo.s_function_node |
目录、页面、技术分组和模块位置 |
数据库脚本位于:
fms-api/src/main/resources/db/migration/001_module_management.sql
脚本可以重复执行,首次执行时创建配置表并写入 s_module 模块种子数据。
页面入口
- 菜单:
系统管理 / 模块管理 - 路由:
/system/modules
页面采用左侧功能树、右侧模块详情的桌面工作布局(不兼容移动端)。未被功能节点引用的模块统一进入“未归档模块”。详情包含:
- 基本信息。
- 字段设计,字段与表单分组在同一工作区维护。
- 功能树中的菜单绑定和隐藏子模块位置。
功能树可以在页面内维护目录、页面、模块绑定和隐藏子模块。目录与页面的 b_show_in_menu 配置会投影到侧边栏,并与尚未迁移的静态菜单合并,避免迁移期间丢失入口。
接口边界
本阶段没有新增模块管理 CRUD 接口,继续复用:
/api/data/page/api/data/loaddata/api/data/saveobjt/api/data/nextid
模块、字段和分组通过一次 saveobjt 请求在同一事务中保存,功能树节点独立保存。删除模块时同时清理功能节点引用;存在下级功能节点时禁止直接删除。
页面验收步骤
- 使用机构
G3HD登录新系统。 - 进入“系统管理 / 模块管理”。
- 确认能够看到内置的“模块管理”模块。
- 打开该模块,检查基本信息、5 个字段配置和 1 个表单分组。
- 在功能树管理中新增一个临时目录和页面节点。
- 新建一个临时模块,填写裸查询对象名、裸保存对象名、可选业务主键字段和默认排序;页面不应出现主键策略和保存模式。
- 为临时模块新增字段、表单分组和功能树位置并保存。
- 将一个页面菜单绑定到临时模块,并在它下面增加隐藏子模块。
- 重新进入临时模块,确认字段、分组和树形位置能够完整加载。
- 修改字段标题或排序并保存,重新加载后确认修改生效。
- 删除临时模块,确认模块、字段、分组和无下级节点的功能树引用一起删除。
- 确认内置的
s_module模块不能从页面删除。
本阶段暂不包含
- 通用
ModuleTable。 - 通用
ModuleForm。 - 独立的选项来源管理页面。
- 正式模块权限内核。
- 结构化模块查询接口。
- 业务模块迁移。
这些能力在模块管理页面验证配置模型稳定后继续建设。