52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import request from '@/utils/request';
|
|
import type { Page } from '@/types/base/page';
|
|
import type { RoleResponse, RoleRequest, RoleQuery, RoleTagResponse } from './types';
|
|
|
|
const BASE_URL = '/api/v1/role';
|
|
|
|
// 获取角色列表(分页)
|
|
export const getRoles = (params?: RoleQuery) =>
|
|
request.get<Page<RoleResponse>>(`${BASE_URL}/page`, {
|
|
params
|
|
});
|
|
|
|
// 创建角色
|
|
export const createRole = (data: RoleRequest) =>
|
|
request.post<RoleResponse>(BASE_URL, data, {
|
|
successMessage: '创建角色成功'
|
|
});
|
|
|
|
// 更新角色
|
|
export const updateRole = (id: number, data: RoleRequest) =>
|
|
request.put<RoleResponse>(`${BASE_URL}/${id}`, data, {
|
|
successMessage: '更新角色成功'
|
|
});
|
|
|
|
// 删除角色
|
|
export const deleteRole = (id: number) =>
|
|
request.delete(`${BASE_URL}/${id}`, {
|
|
successMessage: '删除角色成功'
|
|
});
|
|
|
|
export const assignMenus = async (roleId: number, menuIds: number[]) => {
|
|
return request.post(`/api/v1/role/${roleId}/menus`, menuIds, {
|
|
errorMessage: '分配菜单失败,请稍后重试'
|
|
});
|
|
};
|
|
|
|
export const getRoleMenus = async (roleId: number) => {
|
|
return request.get(`/api/v1/role/${roleId}/menus`, {
|
|
errorMessage: '获取角色菜单失败,请刷新重试'
|
|
});
|
|
};
|
|
|
|
// 分配标签
|
|
export const assignTags = (roleId: number, tagIds: number[]) =>
|
|
request.post(`${BASE_URL}/${roleId}/tags`, tagIds, {
|
|
successMessage: '分配标签成功'
|
|
});
|
|
|
|
// 获取所有标签
|
|
export const getAllTags = () =>
|
|
request.get<RoleTagResponse[]>('/api/v1/role-tag/list');
|
|
|