Files
one-pipe-system/src/api/modules/role.ts
sexygoat cb3ba06106
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m54s
修改bug
2026-04-09 13:48:11 +08:00

110 lines
2.8 KiB
TypeScript
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 - 匹配后端实际接口
*/
import { BaseService } from '../BaseService'
import request from '@/utils/http'
import type {
PlatformRole,
RoleQueryParams,
PlatformRoleFormData,
PermissionTreeNode,
BaseResponse,
PaginationResponse
} from '@/types/api'
export class RoleService extends BaseService {
/**
* 获取角色分页列表
* GET /api/admin/roles
* @param params 查询参数
*/
static getRoles(params?: RoleQueryParams): Promise<PaginationResponse<PlatformRole>> {
return this.getPage<PlatformRole>('/api/admin/roles', params)
}
/**
* 获取角色详情
* GET /api/admin/roles/{id}
* @param id 角色ID
*/
static getRole(id: number): Promise<BaseResponse<PlatformRole>> {
return this.getOne<PlatformRole>(`/api/admin/roles/${id}`)
}
/**
* 创建角色
* POST /api/admin/roles
* @param data 角色数据
*/
static createRole(data: PlatformRoleFormData): Promise<BaseResponse> {
return this.create('/api/admin/roles', data)
}
/**
* 更新角色
* PUT /api/admin/roles/{id}
* @param id 角色ID
* @param data 角色数据
*/
static updateRole(id: number, data: PlatformRoleFormData): Promise<BaseResponse> {
return this.update(`/api/admin/roles/${id}`, data)
}
/**
* 删除角色
* DELETE /api/admin/roles/{id}
* @param id 角色ID
*/
static deleteRole(id: number): Promise<BaseResponse> {
return this.remove(`/api/admin/roles/${id}`)
}
/**
* 更新角色状态
* PUT /api/admin/roles/{id}/status
* @param roleId 角色ID
* @param status 状态 (0-禁用, 1-启用)
*/
static updateRoleStatus(roleId: number, status: 0 | 1): Promise<BaseResponse> {
return this.put<BaseResponse>(`/api/admin/roles/${roleId}/status`, { status })
}
// ========== 权限相关 ==========
/**
* 获取角色权限
* GET /api/admin/roles/{id}/permissions
* @param roleId 角色ID
*/
static getRolePermissions(roleId: number): Promise<any> {
return this.get<any>(`/api/admin/roles/${roleId}/permissions`)
}
/**
* 分配权限给角色
* POST /api/admin/roles/{id}/permissions
* @param roleId 角色ID
* @param permissionIds 权限ID列表
*/
static assignPermissions(roleId: number, permissionIds: number[]): Promise<BaseResponse> {
return this.post<BaseResponse>(`/api/admin/roles/${roleId}/permissions`, {
perm_ids: permissionIds
})
}
/**
* 移除角色的权限(支持批量)
* DELETE /api/admin/roles/{role_id}/permissions
* @param roleId 角色ID
* @param permIds 权限ID列表
*/
static removePermissions(roleId: number, permIds: number[]): Promise<BaseResponse> {
// 直接使用 request.del传递 data 到 Body
return request.del<BaseResponse>({
url: `/api/admin/roles/${roleId}/permissions`,
data: { perm_ids: permIds }
})
}
}