Files
full/module/base/mgt/doc/dpt.md

469 lines
8.2 KiB
Markdown
Raw Normal View History

# 部门模块接口文档
基础路径:`POST /mgt/dpt/*`,需 JWT 认证。
部门按应用维度隔离:创建/列表/树等接口需传 `workspace` 表示所属应用。
---
## 1. 新增部门
**路径**`POST /mgt/dpt/create`
**请求体**DptReq
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码,部门归属应用 |
| name | string | 是 | 部门名称1-100 位,同应用下唯一 |
| parent_id | number | 否 | 父部门 ID0 或不传表示顶级 |
| leader_id | number | 否 | 部门负责人用户 ID |
**请求示例**
```json
{
"workspace": "my_app",
"name": "技术部",
"parent_id": 0,
"leader_id": 1
}
```
**返回**IdResp
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 2. 删除部门
**路径**`POST /mgt/dpt/del`
**说明**:会级联删除该部门及所有子部门,并清理部门-用户、部门-角色、部门-权限关联。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 部门 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 3. 部门详情
**路径**`POST /mgt/dpt/detail`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 部门 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回**data 含部门基础信息及负责人leader简要信息。
| 参数 | 类型 | 说明 |
|------|------|------|
| id | number | 部门 ID |
| identity | string | 唯一标识 |
| name | string | 部门名称 |
| app_id | number | 应用 ID |
| parent_id | number | 父部门 ID |
| leader_id | number | 负责人用户 ID |
| leader | object | 负责人信息id、identity、name |
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"name": "技术部",
"app_id": 1,
"parent_id": 0,
"leader_id": 1,
"leader": {
"id": 1,
"identity": "01HXXX",
"name": "张三"
}
}
}
```
---
## 4. 修改部门
**路径**`POST /mgt/dpt/modify`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 部门 ID |
| name | string | 否 | 部门名称,同应用下唯一 |
| parent_id | number | 否 | 父部门 ID不能为自己或当前部门的子孙 |
| leader_id | number | 否 | 负责人用户 ID |
| status | number | 否 | 状态 |
**请求示例**
```json
{
"id": 1,
"name": "研发技术部",
"parent_id": 0,
"leader_id": 2
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 5. 获取部门列表(分页)
**路径**`POST /mgt/dpt/fetch`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码 |
| page | number | 否 | 页码 |
| size | number | 否 | 每页条数 |
| keyword | string | 否 | 关键字,模糊匹配部门名称 |
| status | number | 否 | 状态 |
| id | number | 否 | 指定部门 ID |
| parent_id | number | 否 | 按父部门 ID 筛选 |
**请求示例**
```json
{
"workspace": "my_app",
"page": 1,
"size": 10,
"keyword": "技术",
"status": 1
}
```
**返回**FetchRespdata 为部门对象数组,含 id、identity、name、app_id、parent_id
```json
{
"code": 0,
"data": {
"total": 1,
"page": 1,
"size": 10,
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"name": "技术部",
"app_id": 1,
"parent_id": 0
}
]
}
}
```
---
## 6. 部门列表(下拉/树)
**路径**`POST /mgt/dpt/list`
**说明**:必传 workspace`tree=true` 时返回树形结构,否则返回扁平列表。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码 |
| keyword | string | 否 | 关键字,模糊匹配部门名称 |
| status | number | 否 | 状态 |
| tree | bool | 否 | true 时返回树形(含 children |
**请求示例(扁平)**
```json
{
"workspace": "my_app",
"keyword": "技术"
}
```
**请求示例(树形)**
```json
{
"workspace": "my_app",
"tree": true
}
```
**返回示例(树形)**
```json
{
"code": 0,
"data": {
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"name": "技术部",
"app_id": 1,
"parent_id": 0,
"children": [
{
"id": 2,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FBW",
"name": "前端组",
"app_id": 1,
"parent_id": 1,
"children": []
}
]
}
]
}
}
```
---
## 7. 获取部门树
**路径**`POST /mgt/dpt/fetch_tree`
**说明**:必传 workspace返回该应用下完整部门树。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码 |
**请求示例**
```json
{
"workspace": "my_app"
}
```
**返回**data 为树形部门数组(结构同 list tree=true
---
## 8. 给部门设置权限
**路径**`POST /mgt/dpt/set_pmn`
**请求体**AddPmnRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 否 | 应用编码,需与部门所属应用一致 |
| id | number | 是 | 部门 ID |
| list | number[] | 是 | 权限 ID 列表,至少 1 个 |
**请求示例**
```json
{
"workspace": "my_app",
"id": 1,
"list": [1, 2, 3]
}
```
---
## 9. 给部门编辑权限(按应用覆盖)
**路径**`POST /mgt/dpt/modify_pmn`
**请求体**:同 set_pmn按应用维度覆盖该部门在该应用下的权限。
---
## 10. 移除部门权限
**路径**`POST /mgt/dpt/del_pmn`
**请求体**:同 set_pmn**list 必填且至少一个元素**,为要移除的权限 ID 列表。
**请求示例**
```json
{
"workspace": "my_app",
"id": 1,
"list": [2, 3]
}
```
---
## 11. 获取部门权限列表(平面)
**路径**`POST /mgt/dpt/pmn`
**说明**:可选 id 指定部门、workspace 过滤应用;**传 workspace 时仅返回该应用下部门权限**。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 否 | 部门 ID不传则查所有部门 |
| workspace | string | 否 | 应用编码,过滤应用维度 |
**请求示例**
```json
{
"id": 1,
"workspace": "my_app"
}
```
**返回**data 为部门列表,每项含 id、identity、name 及 permissions 数组。
---
## 12. 获取部门权限树
**路径**`POST /mgt/dpt/pmn_tree`
**说明**:部门下权限按父子建树;**传 workspace 时仅返回该应用下部门权限**。
**请求体**:同 pmn 接口id、workspace 可选)。
**返回**data 为部门列表,每项的 permissions 为树形权限结构。
---
## 13. 用户移入部门
**路径**`POST /mgt/dpt/set_user`
**请求体**DptUserRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dpt_id | number | 是 | 部门 ID大于 0 |
| user_ids | number[] | 是 | 用户 ID 列表,至少 1 个,每个大于 0 |
**请求示例**
```json
{
"dpt_id": 1,
"user_ids": [1, 2, 3]
}
```
**返回示例**
```json
{
"code": 0,
"data": ""
}
```
---
## 14. 用户移出部门
**路径**`POST /mgt/dpt/del_user`
**请求体**:同 set_useruser_ids 为要移出的用户 ID 列表。
**请求示例**
```json
{
"dpt_id": 1,
"user_ids": [2]
}
```
---
## 15. 获取部门下用户列表
**路径**`POST /mgt/dpt/user`
**说明****部门 ID 必传**,避免误用为“查全部部门用户”。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 部门 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回**data 为部门列表(通常一条),每项含 id、identity、name 及 users 数组(用户 id、identity、name