# egg-ts-template **Repository Path**: change128/egg-ts-template ## Basic Information - **Project Name**: egg-ts-template - **Description**: Egg + TS 开发后台管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-02-24 - **Last Updated**: 2023-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Egg-TS 后端服务系统 使用 egg && typescript 需要注意其中的一些问题: ### 技术栈 - Node.js 8.x - Typescript 3.0+ - Egg 2.6.1+ - Sequelize 5.2.2+ - Mysql2 2.3.0+ - Redis 2.4+ - Passport 2.1.1+ ## 前期环境依赖版本注意: 因为目前 Egg 的官网中并没有对 TS 的脚手架安装做升级,依赖的包版本会存在找不到模块的问题,sequelize官网中也没有对应的问题涉及,在自己去根据 VScode 给出的问题去找 node_modules 中的依赖包查看版本下载对应的 sequelize-typescript 和 egg-sequelize-ts 版本,但是问题还存在一个就是 egg-sequelize 的版本当前只支持 5.2.2 的版本 所以这边要降级后项目才能正常运行 ![image-20210816141405989](https://gitee.com/meazeng/picture-warehouse/raw/master/image-20210816141405989.png) ## 利用 sequelize-cli 初始化数据库的注意点: 在安装Egg官网的sequelize-cli配置创建好迁移文件后,需要在 package.json中新增执行TS迁移文件脚本 **"sequelize-cli-ts": "node -r ts-node/register ./node_modules/sequelize-cli/lib/sequelize"** 执行迁移文件指令 **npm run sequelize-cli-ts db:migrate** # 接口文档: ## 1.API接口文档说明 - 接口基准地址:`http://127.0.0.1:7001` - 服务端已开启 egg-cors 跨域支持 - `/api/v1/` 认证统一使用 Token 认证 - 需要授权的 API ,必须在请求头中使用 `Authorization` 字段提供 `token` 令牌 (无) - 使用 HTTP Status Code 标识状态 ( Restful API 风格) - 数据返回格式统一使用 JSON ###1.1 支持的请求方法 - GET:查、获取 - POST:登录、提交信息... ###1.2 通用返回状态说明 | *状态码* | *含义* | *说明* | | -------- | -------------- | ---------------------------------------------------- | | 200 | 成功 | 请求成功。客户端向服务器请求数据,服务器返回相关数据 | | 201 | 已创建 | 资源创建成功。客户端向服务器提供数据,服务器创建资源 | | 202 | 已接受 | 请求被接收。但处理尚未完成 | | 204 | 无内容 | 客户端告知服务器删除一个资源,服务器移除它 | | 206 | 部分内容 | 请求成功。但是只有部分回应 | | 400 | 错误请求 | 请求无效。数据不正确,请重试 | | 401 | 未授权 | 请求没有权限。缺少API token,无效或者超时 | | 403 | 禁止 | 用户得到授权,但是访问是被禁止的 | | 404 | 未找到 | 发出的请求针对的是不存在的记录,服务器没有进行操作 | | 406 | 不接受 | 请求失败。请求头部不一致,请重试 | | 410 | 已删除 | 请求的资源被永久删除,且不会再得到的 | | 500 | 服务器内部错误 | 服务器发生错误,请检查服务器 | | 502 | 错误网关 | 网关错误 | | 503 | 服务不可用 | 服务不可用,服务器暂时过载或维护 | | 504 | 网关超时 | 网关超时 | ## 2.普通注册验证码接口 - 请求基路径:http://127.0.0.1:7001 - Token 认证:不需要 ### 基本信息 **Path:** /imagecode **Method:** GET ### 请求参数:无 ### 返回数据: ``` { text: 'kZE5', data: '图片内容' } ``` ## 3.邮箱注册验证码接口 - 请求基路径:http://127.0.0.1:7001 - Token 认证:不需要 ### 基本信息 **Path:** /emailcode **Method:** GET ### 请求参数: | **参数名称** | 是否必须 | **示例** | **备注** | | ------------ | -------- | ---------------- | ---------- | | email | 是 | 894817389@qq.com | qq邮箱号码 | ### 返回数据: ``` {     "data": {         "accepted": [             "2304381610@qq.com"         ],         "rejected": [],         "envelopeTime": 215,         "messageTime": 648,         "messageSize": 459,         "response": "250 OK: queued as.",         "envelope": {             "from": "894817389@qq.com",             "to": [                 "2304381610@qq.com"             ]         },         "messageId": "<85c94f59-794d-3115-4b96-dc7abdebce3e@qq.com>"     },     "msg": "成功",     "code": 200 } ``` ## 4.手机注册验证码接口 因为没有模板签名没有通过,所以手机注册验证码的接口暂时做不了 ##5.注册接口 - 请求基路径:http://127.0.0.1:7001 - Token 认证:不需要 ### 基本信息 **Path:** /register **Method:** POST ### 请求参数: | 参数名称 | 是否必传 | 备注 | | --------------------- | -------- | -------------------- | | username(email,phone) | 是 | 用户名,邮箱,手机号 | | password | 是 | 密码 | | captcha | 是 | 验证码 | ### 返回数据 ``` { code: 200 data:{ id: 36 username: "xiaotuxian002" createdAt: "2021-08-27T06:48:25.318Z" updatedAt: "2021-08-27T06:48:25.318Z" } } ``` ## 6.登录接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:** /login **Method:** POST ###接口描述: 登录成功后,后端会以EGG_SESS作为key值存储到cookie中,前端需要开启 withCredentials = true 允许携带cookie,后端通过egg-cors配置告诉服务器允许前端携带cookie(credentials:true) ### 接口参数 #### Headers | 参数名称 | 参数值 | 是否必传 | 示例 | | ------------ | ---------------- | -------- | ---- | | Content-Type | application/json | 是 | | #### Body | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------------------------- | ---------------- | ------ | | username | 是(用户名,邮箱,手机之一) | xiaotuxian110 | 用户名 | | email | 是(用户名,邮箱,之一) | 894817389@qq.com | 邮箱 | | phone | 是(用户名,邮箱,手机之一) | 13141125634 | 手机 | | password | 是 | com.123456789 | 密码 | | captcha | 是 | DX7F,b6UM | 验证码 | ### 返回数据 ``` { id: 1, username: 'zzj123', createdAt: 2021-08-21T12:09:06.000Z, updatedAt: 2021-08-21T12:09:06.000Z, token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJ6emoxMjMiLCJjcmVhdGVkQXQiOiIyMDIxLTA4LTIxVDEyOjA5OjA2LjAwMFo iLCJ1cGRhdGVkQXQiOiIyMDIxLTA4LTIxVDEyOjA5OjA2LjAwMFoiLCJpYXQiOjE2Mjk1OTkzMDl9.RZSq_ny--S2ond2RQCgyfqqUf7QHlQ885eMQrLTSFT4' } ``` ## 7.第三方登录 Githu 接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:** /passport/github,/passport/github/callback **Method:** GET ###接口描述: 这里我用了 Egg 里面的 passport 鉴权第三方功能实现 ## 8.获取所有用户列表接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/users **Method:** GET ###请求参数:无 ### 返回数据: ``` { code: 200 data: (8) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, __ob__: Observer] msg: "成功" } ``` ## 9.用户列表新增用户接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/users **Method:** POST ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------- | --------------- | ------ | | username | 是 | xiaotuxian001 | 用户名 | | email | 是 | 88888888@qq.com | 邮箱 | | phone | 是 | 13149637451 | 电话 | | password | 是 | com.222555 | 密码 | ### 返回数据: ``` { code: 200 id: 40 data: {username: "xiaotuxian009", email: "894817381@qq.com", phone: "13145523641", id: 40,…} createdAt: "2021-08-27T10:10:44.468Z" email: "894817381@qq.com" phone: "13145523641" updatedAt: "2021-08-27T10:10:44.468Z" username: "xiaotuxian009" msg: "成功" } ``` ## 10.用户列表删除用户接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/users/:id **Method:** DELETE ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------- | ---- | -------- | | id | 是 | 20 | 用户的id | ### 返回数据: ``` { code:200 data:{ 删除的用户信息 } msg:"成功" } ``` ## 11.用户列表获取单个用户信息接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/users/:id **Method:** GET ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------- | ---- | -------- | | id | 是 | 20 | 用户的id | ### 返回数据: ``` { code: 200 data: {id: 40, username: "xiaotuxian009", email: "894817381@qq.com", phone: "13145523641",…} avatarURL: "/public/bigUserHeader.png" email: "894817381@qq.com" github: false id: 40 phone: "13145523641" userState: true username: "xiaotuxian009" msg: "成功" } ``` ## 12.用户列表编辑用户信息接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/users/:id **Method:** PUT ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------- | ----------------- | -------- | | id | 是 | 20 | 用户的id | | username | 是 | xiaotuxian001 | 用户名 | | email | 否 | xiaotuxian@qq.com | 邮箱 | | phone | 否 | 13149343162 | 手机号 | | password | 是 | com.123456 | 密码 | ### 返回数据: ``` { code: 200 data: [1] // data.length > 0 表示编辑成功 msg: "成功" } ``` ## 13.导入Excel用户表接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/importUser **Method:** POST ###请求参数:无 ### 返回数据: ``` { code: 200 data: [{name: "孙财", username: "suncai666", password: "1411446cc2e2ca49976c9326098a06d0", github: 0,…},…] 0: {name: "孙财", username: "suncai666", password: "1411446cc2e2ca49976c9326098a06d0", github: 0,…} avatar_rul: "/public/bigUserHeader.png" github: 0 name: "孙财" password: "1411446cc2e2ca49976c9326098a06d0" user_state: 1 username: "suncai666" 1: {name: "李四", email: "976068452@qq.com", password: "1411446cc2e2ca49976c9326098a06d0", github: 0,…} 2: {name: "赵六", phone: 17525365124, password: "1411446cc2e2ca49976c9326098a06d0", github: 0,…} msg: "成功" } ``` ## 14.导出Excel用户表接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/exportUser **Method:** GET ###请求参数:无 ### 返回数据: ###### 返回一个用户信息的Excel的表 ## 15.用户列表分页接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/userpage **Method:** GET ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | ----------- | -------------- | ---- | ---------- | | currentPage | 否 (默认值:1) | 1 | 当前页数 | | pageSize | 否 (默认值:5) | 10 | 当前页容量 | ### 返回数据: ``` { count: 14 users: [{baseURL: "http://127.0.0.1:7001", id: 24, name: "小兔管理员", username: "dengziyin", email: null,…},…] 0: {baseURL: "http://127.0.0.1:7001", id: 24, name: "小兔管理员", username: "dengziyin", email: null,…} 1: {baseURL: "http://127.0.0.1:7001", id: 25, name: "小兔管理员", username: null, email: "894817389@qq.com",…} 2: {baseURL: "http://127.0.0.1:7001", id: 26, name: "小兔管理员", username: null, email: null,…} 3: {baseURL: "http://127.0.0.1:7001", id: 27, name: "小兔管理员", username: "", email: "97606813@qq.com",…} 4: {baseURL: "http://127.0.0.1:7001", id: 36, name: "小兔管理员", username: "xiaotuxian002", email: null,…} 5: {baseURL: "http://127.0.0.1:7001", id: 38, name: "小兔管理员", username: "xiaotuxian003",…} 6: {baseURL: "http://127.0.0.1:7001", id: 39, name: "小兔管理员", username: "xiaotuxian005",…} 7: {baseURL: "http://127.0.0.1:7001", id: 40, name: "小兔管理员", username: "xiaotuxian009",…} 8: {baseURL: "http://127.0.0.1:7001", id: 41, name: "小兔管理员", username: "xiaotuxian004",…} 9: {baseURL: "http://127.0.0.1:7001", id: 42, name: "小兔管理员", username: "52313533342126",…} msg: "成功" } ``` ## 16.用户列表查询筛选功能接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/userpage **Method:** GET ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | ----------- | -------------- | ----------------------- | ------ | | role | 否 | 管理员、普通用户 | 角色 | | origin | 否 | github \|\| local | 来源 | | type | 否 | 用户名、邮箱、手机 | 类型 | | key | 否 | 关键字 例如:xiaotuxian | 关键字 | | currentPage | 否 (默认值:1) | 1 | 当前页 | | pageSize | 否 (默认值:5) | 10 | 页容量 | ### 返回数据: ``` 请求网址: http://127.0.0.1:7001/api/v1/userpage?role=&origin=github&type=username&key=¤tPage=1&pageSize=5 { code: 200 data: {,…} count: 1 users: [{baseURL: "http://127.0.0.1:7001", id: 36, name: "小兔管理员", username: "xiaotuxian002", email: null,…}] 0: {baseURL: "http://127.0.0.1:7001", id: 36, name: "小兔管理员", username: "xiaotuxian002", email: null,…} avatarURL: "/public/bigUserHeader.png" baseURL: "http://127.0.0.1:7001" email: null github: true id: 36 local: false name: "小兔管理员" phone: null userState: true username: "xiaotuxian002" msg: "成功" } ``` ## 17.获取所有角色列表接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/allroles **Method:** GET ###请求参数:无 ### 返回数据: ``` { code: 200 data: [{id: 1, roleName: "超级管理员", roleDesc: "管理者", roleState: true},…] 0: {id: 1, roleName: "超级管理员", roleDesc: "管理者", roleState: true} 1: {id: 2, roleName: "员工", roleDesc: "啥都干", roleState: false} 2: {id: 3, roleName: "财务", roleDesc: "管钱", roleState: true} 3: {id: 4, roleName: "人力", roleDesc: "管人", roleState: true} 4: {id: 11, roleName: "黑马", roleDesc: "123", roleState: true} 5: {id: 12, roleName: "撒打算", roleDesc: "sadasd", roleState: true} msg: "成功" } ``` ## 18.角色列表查询筛选接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/roles **Method:** GET ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | ----------- | ---------- | ---------- | ------ | | key | 否 | 超级管理员 | 关键字 | | currentPage | 否 (默认1) | 1 | 当前页 | | pageSize | 否 (默认5) | 10 | 页容量 | ### 返回数据: ``` { code: 200 data: {roles: [{id: 1, roleName: "超级管理员", roleDesc: "管理者", roleState: true}], count: 1} count: 1 roles: [{id: 1, roleName: "超级管理员", roleDesc: "管理者", roleState: true}] 0: {id: 1, roleName: "超级管理员", roleDesc: "管理者", roleState: true} id: 1 roleDesc: "管理者" roleName: "超级管理员" roleState: true msg: "成功" } ``` ## 19.角色新增接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/roles **Method:** POST ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | --------- | ------------- | ------------ | ------ | | id | 否 (默认空) | '' | id | | roleName | 是 | 超级管理员 | 角色名 | | roleDesc | 是 | 拥有所有权利 | 描述 | | roleState | 否 (默认true) | true | 状态 | ### 返回数据: ``` { code: 200 data: {id: 13, roleName: "行政", roleDesc: "裁员", roleState: true} id: 13 roleDesc: "裁员" roleName: "行政" roleState: true msg: "成功" } ``` ## 20.角色删除接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/roles/:id **Method:** DELETE ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------- | ---- | ---- | | id | 是 | 1 | id | ### 返回数据: ``` { code: 200 data: {id: 11, roleName: "黑马", roleDesc: "123", roleState: true} id: 11 roleDesc: "123" roleName: "黑马" roleState: true msg: "成功" } ``` ## 21.编辑角色接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/roles/:id **Method:** PUT ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | --------- | ------------- | ------------ | ------ | | id | 是 | 1 | id | | roleName | 是 | 超级管理员 | 角色名 | | roleDesc | 是 | 拥有所有权利 | 描述 | | roleState | 否 (默认true) | true | 状态 | ### 返回数据: ``` { code: 200 data: [1] 0: 1 msg: "成功" } ``` ## 22.分配角色接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/userrole **Method:** POST ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------- | ---- | ------ | | userId | 是 | 1 | 用户Id | | roleId | 是 | 2 | 角色Id | ### 返回数据: ``` { code: 200 data: {id: 1, userId: 24, roleId: 1, updatedAt: "2021-09-04T02:25:24.855Z",…} id: 1 roleId: 1 userId: 24 createdAt: "2021-09-04T02:25:24.855Z" updatedAt: "2021-09-04T02:25:24.855Z" msg: "成功" } ``` ## 23.删除用户角色接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/userrole/:userId Method:DELETE ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------- | ---- | ------ | | userId | 是 | 1 | 用户Id | | roleId | 是 | 2 | 角色Id | ### 返回数据: ``` { code: 200 data: {id: 9, userId: 24, roleId: 3, updatedAt: "2021-09-04T10:07:14.372Z",…} userId: 24 id: 9 roleId: 3 createdAt: "2021-09-04T10:07:14.372Z" updatedAt: "2021-09-04T10:07:14.372Z" msg: "成功" } ``` ## 24.获取所有权限接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/allrights Method:GET ###请求参数:无 ### 返回数据: ``` { code: 200 data: (40) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}] msg: "成功" } ``` ## 25.权限列表查询筛选功能接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/rights Method:GET ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | ----------- | ---------- | -------- | ------ | | type | 否 | 菜单权限 | 类型 | | key | 否 | 用户 | 关键字 | | currentPage | 否 (默认1) | 1 | 当前页 | | pageSize | 否 (默认5) | 10 | 页容量 | ### 返回数据: ``` { code: 200 data: {,…} count: 40 rights: [{id: 1, rightsName: "菜单权限", rightsDesc: "是否可以使用特定菜单", rightsState: true, rightsType: "menu",…},…] 0: {id: 1, rightsName: "菜单权限", rightsDesc: "是否可以使用特定菜单", rightsState: true, rightsType: "menu",…} 1: {id: 2, rightsName: "用户管理", rightsDesc: "用户管理菜单", rightsState: true, rightsType: "menu",…} 2: {id: 3, rightsName: "用户列表", rightsDesc: "用户列表菜单", rightsState: true, rightsType: "menu",…} 3: {id: 4, rightsName: "权限管理", rightsDesc: "是否可以使用权限管理菜单", rightsState: true, rightsType: "menu",…} 4: {id: 5, rightsName: "角色列表", rightsDesc: "角色列表菜单", rightsState: true, rightsType: "menu",…} msg: "成功" } ``` ## 26.权限级别列表接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/rights Method:GET ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | ---------- | -------- | ------------------ | -------- | | rightsType | 是 | menu/router/action | 权限类型 | | level | 是 | 0/1/2 | 权限等级 | ### 返回数据: ``` ``` ## 27.获取单个权限信息接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/rights/:id Method:GET ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------- | ---- | ------ | | id | 是 | 1 | 权限id | ### 返回数据: ``` { code: 200 data: {id: 1, rightsName: "菜单权限", rightsDesc: "是否可以使用特定菜单", rightsState: true, rightsType: "menu",…} id: 1 level: 0 pid: 0 rightsDesc: "是否可以使用特定菜单" rightsMethod: null rightsName: "菜单权限" rightsPath: "" rightsState: true rightsType: "menu" msg: "成功" } ``` ## 28.新增权限接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/rights Method:POST ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | ------------ | -------- | ---------------------- | ------------------------------------ | | id | 否 | 1 | 权限id | | rightsName | 是 | 菜单权限 | 权限名称 | | rightsDesc | 是 | 是否可以使用特定菜单 | 权限描述 | | rightsState | 否 | true | 默认为true | | rightsType | 是 | menu / router / action | 权限的类型 | | rightsMethod | 否 | get /post /delete /put | 如果Type类型为action,则此字段为必填 | | rightsPath | 否 | 权限地址 | 权限地址 | | pid | 否 | 父级id(默认为0) | 非一级权限必须上传权限 | | level | 否 | 权限等级 | 默认是一级权限 | ### 返回数据: ``` { code: 200 data: {id: 41, rightsName: "123123213", rightsDesc: "21312321312", rightsState: true, rightsType: "action",…} id: 41 level: 2 pid: 0 rightsDesc: "21312321312" rightsMethod: "get" rightsName: "123123213" rightsPath: "" rightsState: true rightsType: "action" createdAt: "2021-09-06T11:44:38.266Z" updatedAt: "2021-09-06T11:44:38.266Z" msg: "成功" } ``` ## 29.删除权限接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/rights/:id Method:DELETE ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | -------- | -------- | ---- | ------ | | id | 是 | 1 | 权限id | ### 返回数据: ``` { code: 200 data: 1 msg: "成功" } ``` ## 30.编辑权限接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/rights/:id Method:PUT ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | ------------ | -------- | ---------------------- | ------------------------------------ | | id | 是 | 1 | 权限id | | rightsName | 是 | 菜单权限 | 权限名称 | | rightsDesc | 是 | 是否可以使用特定菜单 | 权限描述 | | rightsState | 否 | true | 默认为true | | rightsType | 是 | menu / router / action | 权限的类型 | | rightsMethod | 否 | get /post /delete /put | 如果Type类型为action,则此字段为必填 | | rightsPath | 否 | 权限地址 | 权限地址 | | pid | 否 | 父级id(默认为0) | 非一级权限必须上传权限 | | level | 否 | 权限等级 | 默认是一级权限 | ### 返回数据: ``` { code: 200 data: [1] 0: 1 msg: "成功" } ``` ## 31.角色分配权限接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/roleRights Method:POST ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | --------- | -------- | ----------- | ------ | | roleId | 是 | 1 | 角色Id | | rightsIds | 是 | [1,2,3,4,5] | 权限Id | ### 返回数据: ``` { code: 200 data: {roleId: 1, rightsIds: [1, 2, 3, 4, 5, 6]} rightsIds: [1, 2, 3, 4, 5, 6] roleId: 1 msg: "成功" } ``` ## 32.移除角色权限接口 - 请求基路径:http://127.0.0.1:7001 ### 基本信息 **Path:**/api/v1/roleRights/:roleId Method:DELETE ###请求参数: | 参数名称 | 是否必传 | 示例 | 备注 | | --------- | -------- | ----------- | ------ | | roleId | 是 | 1 | 角色Id | | rightsIds | 是 | [1,2,3,4,5] | 权限Id | ### 返回数据: ``` { code: 200 data: [] msg: "成功" } ```