feat: ship OA drafts/badges, role dual-track, and test-env deploy tooling.

Add approval instance drafts with menu badges, dual-track user/role read model and role bound names, form-designer outline docs, and bare-metal test deploy scripts. Ignore local test-server credential file.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-08-06 13:58:47 +08:00
1 parent 7af53fc344
commit de22678c87
56 files changed
+11861 -6082

No files matched your search

@@ -43,11 +43,23 @@
系统 SHALL 通过 `sys_post_role` 维护职位与角色关联;职位管理界面 SHALL 支持为职位配置关联角色;用户管理界面 SHALL 支持为用户多选职位。职位本身 SHALL NOT 直接配置菜单树或独立 `data_scope`(权限仍落在 `sys_role`)。
用户详情接口 SHALL 区分:`roleIds`(直接绑定)、`postInheritedRoleIds`(职位继承)、`effectiveRoleIds` / `effectiveRoleNames`(有效并集)。用户管理新增/编辑界面 SHALL NOT 提供直接绑角色的写入控件;直接绑定由运维接口/脚本或专用授权模块维护。更新用户时若仅提交职位关联,SHALL NOT 清空该用户的直接角色绑定。
#### Scenario: 职位角色配置全量替换
- **WHEN** 管理员在职位「角色配置」中保存角色 ID 列表
- **THEN** 系统 SHALL 将该职位的有效 `sys_post_role` 关联替换为该列表(软删除旧关联)
#### Scenario: 用户详情返回三层角色
- **WHEN** 调用方请求用户详情
- **THEN** 响应 SHALL 同时包含直接绑定、职位继承与有效角色字段,且有效角色与运行时菜单/数据权限所用并集一致
#### Scenario: 仅更新职位不改动直接角色
- **WHEN** 更新用户请求体仅包含 `postIds`、未包含 `roleIds`
- **THEN** 系统 SHALL 仅替换 `sys_user_post`,SHALL NOT 修改 `sys_user_role`
### Requirement: Web 与小程序菜单树
菜单管理 SHALL 同时支撑 Web 端与小程序端菜单;系统 SHALL 预置两棵顶层虚拟根(需求中的 parent_id=0 的「web 端菜单」「移动端菜单」),后续菜单 SHALL 挂载其下(与需求 §2.1.6)。