Files

309 lines
5.7 KiB
Markdown
Raw Permalink Normal View History

# 权限模块接口文档
基础路径:`POST /mgt/pmn/*`,需 JWT 认证。
---
## 1. 新增权限
**路径**`POST /mgt/pmn/create`
**请求体**PermissionRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码,权限归属应用 |
| title | string | 否 | 权限名称1-100 位 |
| title_en | string | 否 | 权限名称英文,最长 100 |
| code | string | 是 | 权限标识1-100 位,同应用下唯一 |
| description | string | 否 | 权限描述,最长 1000 |
| parent_id | number | 否 | 父级权限 ID0 表示顶级 |
| menu_path | string | 否 | 菜单路径,最长 500 |
| menu_icon | string | 否 | 菜单图标,最长 100 |
| type | number | 否 | 1=菜单 2=按钮 |
| component | string | 否 | 组件路径,最长 255 |
| sort_key | number | 否 | 排序键≥0 |
| is_web_page | bool | 否 | 是否网页 |
| is_new_tab | bool | 否 | 是否新标签页打开 |
| is_full | bool | 否 | 是否单独页面不包含菜单 |
| hide_menu | bool | 否 | 是否隐藏菜单栏 |
| web_url | string | 否 | 网页地址,最长 500 |
**请求示例**
```json
{
"workspace": "my_app",
"title": "用户管理",
"code": "user:manage",
"description": "用户列表与编辑",
"parent_id": 0,
"menu_path": "/system/user",
"type": 1,
"sort_key": 10
}
```
**返回**IdResp
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 2. 删除权限
**路径**`POST /mgt/pmn/del`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 权限 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 3. 权限详情
**路径**`POST /mgt/pmn/detail`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 权限 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回**PermissionRsp
| 参数 | 类型 | 说明 |
|------|------|------|
| id | number | 权限 ID |
| identity | string | 唯一标识 |
| title | string | 权限名称 |
| title_en | string | 英文名称 |
| code | string | 权限标识 |
| description | string | 描述 |
| app_id | number | 应用 ID |
| parent_id | number | 父级 ID |
| menu_path | string | 菜单路径 |
| menu_icon | string | 菜单图标 |
| type | number | 1=菜单 2=按钮 |
| component | string | 组件路径 |
| sort_key | number | 排序 |
| is_web_page | bool | 是否网页 |
| is_new_tab | bool | 是否新标签打开 |
| is_full | bool | 是否单独页 |
| hide_menu | bool | 是否隐藏菜单 |
| web_url | string | 网页地址 |
| created_at | string | 创建时间 |
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"title": "用户管理",
"title_en": "User Manage",
"code": "user:manage",
"description": "用户列表与编辑",
"app_id": 1,
"parent_id": 0,
"menu_path": "/system/user",
"menu_icon": "user",
"type": 1,
"component": "/system/user/index",
"sort_key": 10,
"is_web_page": false,
"is_new_tab": false,
"is_full": false,
"hide_menu": false,
"web_url": "",
"created_at": "2025-03-16 10:00:00"
}
}
```
---
## 4. 修改权限
**路径**`POST /mgt/pmn/modify`
**请求体**与创建字段一致id 必填,其余为要更新的字段。
**请求示例**
```json
{
"id": 1,
"title": "用户与角色管理",
"sort_key": 5
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 5. 获取权限列表(分页)
**路径**`POST /mgt/pmn/fetch`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| page | number | 否 | 页码 |
| size | number | 否 | 每页条数 |
| keyword | string | 否 | 关键字,模糊匹配 title/code |
| workspace | string | 否 | 应用编码,只查该应用下权限 |
| status | number | 否 | 状态 |
| id | number | 否 | 指定权限 ID |
| sort_key | number | 否 | 非 0 时按 sort_key 降序 |
**请求示例**
```json
{
"page": 1,
"size": 20,
"workspace": "my_app",
"keyword": "用户",
"status": 1
}
```
**返回**FetchRespdata 为 PermissionRsp 数组):
```json
{
"code": 0,
"data": {
"total": 1,
"page": 1,
"size": 20,
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"title": "用户管理",
"code": "user:manage",
"app_id": 1,
"parent_id": 0,
"sort_key": 10,
"type": 1,
"created_at": "2025-03-16 10:00:00"
}
]
}
}
```
---
## 6. 权限排序
**路径**`POST /mgt/pmn/sort`
**请求体**:数组,每项为 SortPmnRequest。
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| pmn_id | number | 是 | 权限 ID大于 0 |
| sort_key | number | 否 | 新排序序号≥0 |
**请求示例**
```json
[
{ "pmn_id": 1, "sort_key": 0 },
{ "pmn_id": 2, "sort_key": 1 },
{ "pmn_id": 3, "sort_key": 2 }
]
```
**返回示例**
```json
{
"code": 0,
"data": ""
}
```
---
## 7. 获取权限关联用户列表
**路径**`POST /mgt/pmn/user`
**请求体**FetchBaseid 为权限 ID。
**请求示例**
```json
{
"id": 1
}
```
**返回**data 为拥有该权限的用户列表。
---
## 8. 获取权限关联角色列表
**路径**`POST /mgt/pmn/role`
**请求体**同上id 为权限 ID。
**返回**data 为拥有该权限的角色列表。