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

309 lines
5.7 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/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 为拥有该权限的角色列表。