权限联动与通用规则
1. 功能定位
本文档汇总基础服务中的通用规则、权限联动、状态联动、删除限制和部门负责人管理边界。
2. 权限链路
账号权限计算链路:
text
账号 -> 角色 -> 菜单权限 / 功能权限 / 数据权限组织关系计算链路:
text
账号 -> 绑定人员 -> 任职关系 -> 部门 / 岗位 / 上下级规则:
- 角色只绑定账号。
- 账号可绑定人员。
- 账号绑定人员后,可继承人员的组织关系。
- 数据权限可使用账号继承的组织关系作为条件基础。
3. 多角色权限合并
当账号拥有多个角色时:
| 权限类型 | 合并规则 |
|---|---|
| 菜单权限 | 并集 |
| 功能权限 | 并集 |
| 行权限 | 并集 |
| 列权限 | 并集 |
| 列权限冲突 | 可见优先 |
| 字段编辑权限 | 并集 |
| 字段编辑权限冲突 | 可编辑优先 |
字段权限规则:
- 可见字段和可编辑字段分别保存、分别合并。
- 可编辑字段必须同时可见。
- 任一启用角色允许字段编辑时,账号最终可编辑该字段;停用角色不参与合并。
- 字段编辑权限不依赖菜单字段的
formFill配置。 - 新增时需要同时具备新增功能权限和字段可编辑权限。
- 编辑时需要同时具备编辑功能权限、当前记录行权限和字段可编辑权限。
- 只有可见权限而没有可编辑权限时,字段只读展示。
- 已有可见字段迁移后默认只读,不自动获得可编辑权限。
4. 数据权限与组织关系
行权限可使用:
- 当前账号
- 当前绑定人员
- 当前人员主部门
- 当前人员继承部门
- 当前人员岗位
- 当前人员直属主管
- 当前人员下级
- 当前人员管辖范围
未绑定人员账号:
- 允许登录。
- 涉及本人、本部门、本部门及下级等组织条件时,默认拥有全部数据。
细则以后续角色 / 账号文档为准。
上下级术语与当前边界:
- 人员任职中的单一主要上级统一称为「直属主管」,底层继续使用
supervisorId字段。 - 协同上级用于补充汇报关系;部门负责人继续在部门管理中独立维护。
- 当直属主管和协同上级均为空时,部门负责人作为后续业务兜底;当前前端不自动写入或计算该兜底关系。
5. 部门负责人管理边界
部门负责人可维护自己管辖范围内的数据。
具体范围由行权限决定。细则以后续角色权限文档为准。
可操作:
- 本部门人员
- 本部门岗位
- 本部门人员账号
- 本部门人员角色
限制:
- 部门负责人不能维护下级部门,除非行权限允许。
- 部门负责人不能将人员分配到自己管辖范围外的部门。
- 部门负责人只能分配自己有权管理的角色。
- 部门负责人导出数据时,根据可见行权限和列权限决定导出内容。
6. 状态联动
| 操作 | 联动结果 |
|---|---|
| 人员离职 | 账号自动停用;有效任职全部结束;角色绑定保留;编制释放 |
| 人员停用 | 人员暂不可用,不等同离职;任职关系保留 |
| 人员启用 | 从停用恢复;目标状态可选试用 / 正式,默认带回停用前状态 |
| 人员退休 | 人员状态变为退休;有效任职结束;编制释放 |
| 人员调岗 | 任职关系变化,编制变化,账号组织关系按继承规则更新 |
| 设置为主岗 | 选中兼职原地改为主职并占编;原主职原地改为兼职且不占编;不结束、不新建 |
| 人员转正 | 待入职可转入试用或直接正式;试用转为正式 |
| 人员复职 | 离职人员恢复为试用或正式,交互同返聘,目标状态不同 |
| 人员返聘 | 离职或退休人员恢复,状态为返聘;默认沿用原账号 |
| 兼职结束 | 任职关系结束 |
| 岗位停用 | 不可再分配新人员 |
| 部门停用 | 不可再新增岗位或人员;下级部门和岗位级联停用,有效任职必须迁移或结束 |
| 角色停用 | 角色权限立即失效 |
| 菜单停用 | 菜单不可访问 |
| 功能权限停用 | 功能不可使用 |
7. 删除限制
| 对象 | 删除规则 |
|---|---|
| 部门 | 仅停用部门可删除,逻辑删除;可选择结束相关任职,未结束任职显示“部门已删除”并置灰 |
| 岗位 | 有有效任职人员不可删除或停用 |
| 人员 | 非离职人员不可删除;仅离职可删;逻辑删除;历史任职、调岗、权限关联记录保留 |
| 账号 | 已绑定人员不可删除,非停用账号不可删除 |
| 角色 | 可删除,但需提示影响范围并二次确认 |
| 菜单 | 可删除,相关授权一并删除 |
| 功能权限 | 可删除,相关授权一并删除 |
8. 唯一性校验
- 部门编码唯一。
- 职位/职级编码唯一。
- 同一部门下岗位编码唯一。
- 人员工号唯一。
- 账号名称唯一。
- 角色编码唯一。
- 菜单编码唯一。
- 同一菜单下功能权限标识唯一。
- 同一表下字段标识唯一。
9. 高影响操作确认
以下操作必须二次确认:
- 部门停用
- 部门迁移
- 部门合并
- 部门删除
- 岗位停用
- 人员离职
- 人员删除
- 人员停用
- 人员退休
- 账号删除
- 角色删除
- 菜单删除
- 功能权限删除
- 字段标识修改
确认前需要展示影响范围。人员离职的影响范围用已加载的人员详情拼装,不另开接口。
10. 影响范围展示
10.1 部门停用
展示:
- 子部门数量
- 启用岗位数量
- 在职人员数量
- 部门负责人
10.2 部门合并
展示:
- 原部门
- 目标部门
- 原岗位数量
- 原人员数量
- 待映射岗位数量
10.3 人员离职
展示:
- 有效任职关系数量
- 绑定账号
- 账号是否将被停用
- 角色绑定关系是否保留
- 编制释放情况
10.4 角色删除
展示:
- 绑定账号数量
- 菜单权限数量
- 功能权限数量
- 数据权限数量
10.5 菜单删除
展示:
- 角色菜单授权数量
- 功能权限数量
- 功能授权数量
- 表定义数量
- 列权限配置数量
10.6 字段标识修改
展示:
- 列权限引用数量
- 表单配置引用数量
- 查询条件引用数量
确认后同步引用关系。
11. 通用前端交互规则
- 人员管理保留「列表 + 独立路由页」(新增 / 详情),不改成抽屉。不再提供独立编辑页;档案在详情页按区块编辑。
- 调岗走右侧抽屉,不用类型下拉,由任职卡片和图标带出操作。设置为主岗不二次确认、不立刻调接口,点确定再提交。内容区纵向滚动,底部按钮固定。详见 人员管理 - 调岗 一节。
- 其他模块新增、编辑优先使用右侧抽屉。
- 删除、停用、合并、迁移等高影响操作使用确认弹窗或步骤向导。设置为主岗、调整任职、停止兼职、新增兼职不要再套确认框。
- 人员生命周期操作(不含调岗)共用一个 Dialog,内容通过
component :is按操作类型加载。 - 涉及批量调整的页面,需要支持统一设置和单行覆盖。
- 表单提交失败时,字段级错误展示在对应字段下方。
- 批量处理失败时,需要展示成功数量、失败数量和失败原因。
- 列表操作成功后,保留当前筛选条件并刷新列表。
- 抽屉关闭前如存在未保存修改,需要二次确认。
- 部门树、菜单树、组织架构图需要支持搜索定位。
- 人员列表左侧部门树保留;点选某部门时,任意有效任职落在该部门的人都算。
- 权限配置页面中,停用数据不可选但可展示历史配置。
- 导出字段需要根据列权限动态控制。
12. 备注与人员历史
新增和详情分块编辑不填写备注。删除和生命周期操作可填写备注(选填),有内容时写入人员历史:
- 调岗(含设置为主岗、新增 / 调整 / 停止兼职)
- 转正
- 停用
- 启用
- 离职
- 退休
- 复职
- 返聘
13. 重点提示文案
部门停用:
text
该部门下存在人员,需要先分配人员去向。停用后,该部门不可再新增人员或岗位。岗位超编:
text
当前岗位已超出编制人数,系统仅做提示,不阻止继续分配人员。人员离职:
text
人员离职后,当前有效任职关系将结束,绑定账号将自动停用,角色绑定关系保留。账号删除:
text
已绑定人员或未停用的账号不可删除。角色停用:
text
角色停用后,绑定账号将立即失去该角色下的权限。菜单删除:
text
删除菜单后,相关角色授权、功能授权和列权限配置将一并删除。字段标识修改:
text
该字段已被权限、表单或查询条件引用。确认修改后,系统将同步更新引用关系。14. 当前前端联动实现(截至 2026-09-01)
已实现的前端联动:
- 账号权限明细按启用角色计算“全部”并集视图,并保留逐角色视图;展示菜单、功能、行权限、可见列和可编辑列。
- 角色字段权限将可见字段和可编辑字段分开保存;可编辑字段必然同时可见,批量全选同时授权两者。
- 角色停用和菜单/功能停用均提供风险确认;停用项在授权界面不可继续新增授权。
- 菜单、功能、表和字段删除会先加载影响数量;菜单和功能关联授权、表字段引用的实际清理由提交接口负责。
- 部门停用、合并和删除会展示部门、岗位、当前任职及历史影响,并要求对主职和兼职做出符合规则的处置。
- 人员离职/退休结束当前任职并停用绑定账号;账号角色关系保留。
- 岗位存在有效任职时阻止停用;职级存在有效任职时阻止删除,停用只影响后续选择。
仍依赖正式后端的能力:
- 最终菜单可访问性、功能鉴权、行权限过滤、字段脱敏和字段可编辑校验。
- 多角色权限合并的服务端口径,以及部门负责人、直属主管、协同上级相关组织数据范围计算。
- 编码修改后的跨模块引用同步、删除后的引用清理和并发唯一性校验。
- 当前
sample/mock仅用于前端交互验证,不能代替正式权限服务。
Grow Admin