Files
EchoChat/admin/src/api/user.js
bujinyuan fa6f1e5c58 feat: 角色等级体系与权限管控实施
- 数据库:auth_roles 表新增 level 字段(1=超管, 10=管理员, 100=普通用户)
- 后端:新增 GetAllRoles/GetUserMaxLevel/SetUserRoles/FindByCodeList DAO 方法
- 后端:SetRolesRequest 替换 AssignRoleRequest,AdminUserInfo.Roles 改为 []RoleInfo
- 后端:所有管理操作(禁用/启用/角色分配/创建用户)强制层级权限校验
- 后端:PUT /users/:id/roles(批量设置角色)+ GET /roles(角色列表)
- 前端:角色管理改为 Checkbox Group 多选,高等级角色禁用
- 前端:禁用/启用按钮受角色层级约束,列表页操作按钮权限管控
- 前端:创建用户对话框角色选项根据操作者等级动态过滤
- 文档:API 文档、设计方案、集成规范、进度文档同步更新

Made-with: Cursor
2026-03-02 15:40:02 +08:00

102 lines
2.6 KiB
JavaScript
Raw 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.

/**
* 用户管理 API 模块
*
* 对应后端路由:/api/v1/admin/users, /api/v1/admin/roles
* 所有接口需要 JWT + admin 角色权限
*
* 接口列表:
* - GET /api/v1/admin/users 用户列表(分页 + 搜索 + 筛选)
* - GET /api/v1/admin/users/:id 用户详情
* - PUT /api/v1/admin/users/:id/status 更新用户状态
* - PUT /api/v1/admin/users/:id/roles 批量设置角色
* - POST /api/v1/admin/users 管理员创建用户
* - GET /api/v1/admin/roles 获取所有角色列表
*/
import request from '@/utils/request'
/**
* 获取用户列表
* @param {Object} params - 查询参数
* @param {number} params.page - 页码(从 1 开始)
* @param {number} params.page_size - 每页数量
* @param {string} [params.keyword] - 搜索关键词(用户名/邮箱)
* @param {number} [params.status] - 状态筛选1=正常, 2=禁用
* @returns {Promise<{data: {total: number, list: Array}}>}
*/
export function getUserList(params) {
return request({
url: '/api/v1/admin/users',
method: 'get',
params
})
}
/**
* 获取用户详情
* @param {number} id - 用户 ID
* @returns {Promise<{data: Object}>}
*/
export function getUserDetail(id) {
return request({
url: `/api/v1/admin/users/${id}`,
method: 'get'
})
}
/**
* 更新用户状态
* @param {number} id - 用户 ID
* @param {number} status - 目标状态1=正常, 2=禁用
* @returns {Promise}
*/
export function updateUserStatus(id, status) {
return request({
url: `/api/v1/admin/users/${id}/status`,
method: 'put',
data: { status }
})
}
/**
* 批量设置用户角色(先清后设)
* @param {number} id - 用户 ID
* @param {string[]} roleCodes - 角色代码列表
* @returns {Promise}
*/
export function setUserRoles(id, roleCodes) {
return request({
url: `/api/v1/admin/users/${id}/roles`,
method: 'put',
data: { role_codes: roleCodes }
})
}
/**
* 获取所有角色列表(含 level 等级信息)
* @returns {Promise<{data: Array<{code: string, name: string, level: number}>}>}
*/
export function getAllRoles() {
return request({
url: '/api/v1/admin/roles',
method: 'get'
})
}
/**
* 管理员创建用户
* @param {Object} data - 用户信息
* @param {string} data.username - 用户名
* @param {string} data.email - 邮箱
* @param {string} data.password - 初始密码
* @param {string} [data.nickname] - 昵称
* @param {string} [data.role_code] - 初始角色
* @returns {Promise<{data: Object}>}
*/
export function createUser(data) {
return request({
url: '/api/v1/admin/users',
method: 'post',
data
})
}