岗位与职级管理
1. 功能定位
岗位管理用于维护部门下的岗位、职责、任职要求和分类编制。
职级管理用于维护全局统一的人员层级标准。职位与职级在本系统表达同一概念,界面统一称为「职级」,不再设置类型。
岗位归属于部门;职级全局独立维护。岗位与职级不建立绑定关系,人员任职时分别选择部门、岗位和职级。
2. 关系模型
text
部门 -> 岗位
人员任职 -> 部门 + 岗位 + 职级规则:
- 岗位由部门维护,不建立全局岗位库。
- 岗位数量通过分类编制表达,不创建多条同名岗位。
- 同一部门下岗位编码唯一;岗位名称重复时提示但不强制阻止。
- 同一岗位下的不同人员可以选择不同职级。
- 更换部门或岗位不会自动修改职级;只有用户主动选择时才变更职级。
3. 岗位管理页面
3.1 页面布局
- 页面不分页,按部门层级顺序展示。
- 一个部门有几个直属岗位,就在该部门分组下生成几条岗位行;无岗位部门保留一条空岗位行。
- 部门名称按层级增加缩进;同一部门的名称、编码、上级部门、直属岗位数、状态和操作在视觉上合并展示。
- 「岗位」为一级分组表头,二级表头为名称、编码、全部、全职、兼职、实习、外包、超编、岗位状态和操作。
- 停用部门行置灰,且不能新增岗位。
筛选项:
- 所属部门
- 岗位名称
- 岗位编码
- 状态
- 是否超编
部门列:
- 部门
- 部门编码
- 上级部门
- 直属岗位数
- 部门状态
- 操作
岗位二级列:
- 名称
- 编码
- 全部
- 全职
- 兼职
- 实习
- 外包
- 超编
- 岗位状态
- 操作
页面支持列显隐配置。导入、导出暂不实现,不展示对应入口。
3.2 人数与编制展示
- 全部、全职、兼职、实习、外包使用“当前人数 / 配置数”展示。
- 全部的配置数为全职编制与外包编制之和;全部人数为当前有效且占用编制的任职数量。
- 全职、外包、实习按有效主职的员工类型统计;兼职按有效兼职任职统计。
- 超编为当前占用编制人数减去全职与外包总编制,小于零时按 0 展示。
- 超编只提示,不阻止继续分配人员;非零超编使用风险色。
- 上述数字均可点击,数字为 0 时也可打开对应人员空列表。
点击后使用 Dialog 展示:姓名、工号、人员类型、任职类型、人员状态和开始日期。
超编人员列表按占用编制任职的开始日期倒序,取超出总编制的数量。该口径用于当前前端演示,正式超编归属以后端结果为准。
4. 岗位字段
| 字段 | 必填 | 控件 | 说明 |
|---|---|---|---|
| 所属部门 | 是 | 树选择 | 仅可选择启用部门 |
| 岗位名称 | 是 | 输入框 | 同部门重复时提示 |
| 岗位编码 | 是 | 输入框 | 同部门唯一,允许编辑 |
| 岗位类型 | 否 | 下拉选择 | 正式、外包、实习、管理 |
| 全职编制 | 否 | 数字输入 | 非负整数 |
| 外包编制 | 否 | 数字输入 | 非负整数 |
| 兼职配置 | 否 | 数字输入 | 用于兼职比例展示,不占用总编制 |
| 实习配置 | 否 | 数字输入 | 用于实习比例展示 |
| 岗位职责 | 否 | 多行文本 | 职责说明 |
| 任职要求 | 否 | 多行文本 | 任职要求 |
| 排序号 | 否 | 数字输入 | 同部门内排序 |
| 岗位说明 | 否 | 多行文本 | 其他说明 |
新增岗位默认启用。岗位没有有效任职时可修改所属部门;存在有效任职时所属部门锁定,应通过部门迁移或人员调岗处理。
5. 岗位详情
打开方式:右侧详情抽屉。
详情不使用页签,直接平铺展示:
- 基本信息
- 编制统计
- 当前人员
- 历史任职
当前人员和历史任职均展示姓名、工号、任职类型、日期及是否占用编制等信息。
6. 岗位启停
- 启用岗位可以被新的人员任职选择。
- 岗位存在有效任职时不允许停用,必须先调岗、离职或结束相关任职。
- 停用岗位不再出现在新增任职的可选项中,但历史任职保留岗位名称。
- 岗位超编只提示,不影响启用状态。
7. 职级管理页面
职级使用独立分页列表,不按部门或岗位组织。
筛选项:名称、编码、状态。
表格列:名称、编码、层级、排序号、状态、任职人数、操作。
操作:新增、编辑、启用、停用、删除。
页面支持列显隐配置;导入、导出暂不实现。
8. 职级字段
| 字段 | 必填 | 控件 | 说明 |
|---|---|---|---|
| 名称 | 是 | 输入框 | 职级名称 |
| 编码 | 是 | 输入框 | 全局唯一,允许编辑 |
| 层级 | 是 | 数字输入 | 1-99 |
| 排序号 | 否 | 数字输入 | 展示排序 |
| 描述 | 否 | 多行文本 | 最多 200 字 |
| 状态 | 系统维护 | 开关 | 启用或停用 |
职级没有类型字段。
9. 职级规则
- 职级编码全局唯一。
- 停用前展示当前有效任职影响,用户确认后可停用。
- 停用不影响已有任职,但该职级不能再被新的任职选择。
- 只有停用职级可以删除;存在有效任职引用时禁止删除。
- 历史任职保留当时的职级名称。
- 岗位新增、编辑、启停和编制变化均不修改职级。
10. 人员任职中的职级
- 人员新增、任职编辑、调整主职、新增兼职和调整兼职均可独立选择职级。
- 部门、岗位、职级三者不自动联动。
- 更换部门或岗位时保留当前职级,只有用户主动选择时才修改。
- 人员任职界面不展示岗位编码或职级编码。
- 当前有效任职保存
jobGradeId和职级名称;历史任职保留结束时的名称快照。
11. 当前代码实现(截至 2026-09-01)
- 岗位页面实现位于
src/pages/post-manage,包含列表、岗位表单抽屉、详情抽屉和人员明细 Dialog。 - 职级页面实现位于
src/pages/position-manage,包含分页列表、新增编辑 Dialog、启停影响确认和删除影响 Dialog。 - 岗位模型已包含全职、外包、兼职、实习配置数及对应当前人数,以及总在岗、空缺、超编和有效任职数。
- 已定义岗位、职级的列表、详情、新增编辑、启停和影响范围接口,并在
sample/mock/systemPost.ts、sample/mock/systemPosition.ts提供演示实现。 - 正式权限、并发唯一性和状态联动最终以后端实现为准。
Grow Admin