72 lines
3.6 KiB
Markdown
72 lines
3.6 KiB
Markdown
# 功能树与模块配置重构计划
|
|
|
|
## 1. 目标
|
|
|
|
本次重构解决两个问题:
|
|
|
|
1. 技术人员能够按业务结构定位页面下的主模块、明细模块和隐藏模块,不再依赖扁平列表逐个搜索。
|
|
2. 字段和表单分组在同一个工作区维护,常用配置直接编辑,高级配置按需展开。
|
|
|
|
功能树不生成页面或 Tab。页面布局和模块组合继续由手写 Vue 页面负责。
|
|
|
|
## 2. 数据边界
|
|
|
|
| 数据 | 责任 |
|
|
| --- | --- |
|
|
| `s_function_node` | 目录、页面、技术分组和模块管理位置;菜单由可见节点投影 |
|
|
| `s_module` | 查询对象、保存对象、业务主键和模块级状态 |
|
|
| `s_module_field` | 列表、查询和表单字段配置 |
|
|
| `s_module_group` | 表单字段分组 |
|
|
|
|
功能节点父子关系只表示管理位置,不定义保存事务或业务组合。页面节点可以绑定主模块,权限继续按菜单入口、模块和动作独立校验。
|
|
|
|
## 3. 实施阶段
|
|
|
|
### 阶段 A:功能树基础
|
|
|
|
- 创建 `s_function_node`,页面菜单允许直接绑定模块。
|
|
- 写入“系统管理 / 模块管理 / 模块定义”最小种子。
|
|
- 模块管理加载完整功能树,未被功能节点引用的模块进入“未归档模块”。
|
|
- 搜索匹配节点名称、模块编码、模块名称、查询对象和保存对象,并保留祖先节点。
|
|
|
|
### 阶段 B:模块配置工作区
|
|
|
|
- 左侧用功能树代替分页模块表格。
|
|
- 目录和页面节点只负责展开;模块节点打开右侧配置。
|
|
- 保留模块启停快捷开关。
|
|
- 提供“模块”和“菜单”两个显示开关,隐藏菜单层级时仍能直接定位模块。
|
|
- 从当前树节点新建模块时自动带入归属位置,保存模块后同步创建树节点。
|
|
- 右侧显示模块完整路径和模块编码。
|
|
|
|
### 阶段 C:字段设计器
|
|
|
|
- 合并“字段配置”和“表单分组”为一个“字段设计”Tab。
|
|
- 左侧显示“全部字段、未分组、已配置分组”。
|
|
- 分组支持新增、编辑、删除和排序。
|
|
- 右侧字段表格直接编辑标题、控件、分组、列表显示、表单显示、必填和启停。
|
|
- 字段表格一次只允许一行进入编辑态,高级属性在当前行下方展开,不使用字段抽屉。
|
|
- 字段表格占满字段设计工作区剩余高度。
|
|
- 保存仍复用模块、字段、分组一次事务提交。
|
|
|
|
### 阶段 D:菜单投影
|
|
|
|
- 完成现有静态菜单到功能树的迁移清单。
|
|
- 侧边栏读取 `b_show_in_menu = 1` 的目录和页面,并按节点编码或页面路由与现有静态菜单合并。
|
|
- 功能目录修改后刷新菜单投影;在迁移完成前保留未登记的静态菜单,避免功能入口丢失。
|
|
- 所有菜单节点和路由核对完成后,再删除静态回退配置。
|
|
|
|
## 4. 验收标准
|
|
|
|
- 可以从“海运业务 / 海运业务单 / 装箱”路径定位主表和明细模块。
|
|
- 隐藏模块不出现在业务菜单,但可在模块管理中定位。
|
|
- 同一个模块可以被多个功能节点引用。
|
|
- 页面和 Tab 不由配置自动生成。
|
|
- 未归档模块始终可搜索和打开。
|
|
- 字段常用属性无需逐个打开弹窗即可修改。
|
|
- 删除分组时仍阻止删除被字段引用的分组。
|
|
- 功能树、模块配置和权限的职责没有混用。
|
|
|
|
## 5. 当前迁移策略
|
|
|
|
当前版本已经完成阶段 A、B、C,并以兼容合并方式启动阶段 D。功能树中的可见目录和页面会立即投影到侧边栏;尚未登记的旧菜单继续使用静态配置。待现有菜单和路由全部登记并核对后,侧边栏再切换为完全由功能树驱动。
|