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

469 lines
8.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 部门模块接口文档
基础路径:`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