Role.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import axiosInstance from '../utils/axios';
  2. // 角色 VO
  3. export interface RoleVO {
  4. id?: number;
  5. name: string;
  6. code: string;
  7. sort: number;
  8. status: number;
  9. type: number;
  10. dataScope: number;
  11. dataScopeDeptIds?: number[];
  12. remark?: string;
  13. createTime?: Date;
  14. }
  15. // 更新状态请求 VO
  16. export interface UpdateStatusReqVO {
  17. id: number;
  18. status: number;
  19. }
  20. // 分页参数类型
  21. export interface PageParam {
  22. pageNo?: number;
  23. pageSize?: number;
  24. name?: string;
  25. code?: string;
  26. status?: number;
  27. createTime?: string[];
  28. [key: string]: any;
  29. }
  30. // 分页响应类型
  31. export interface PageResponse<T> {
  32. list: T[];
  33. total: number;
  34. }
  35. // 角色管理 API
  36. export const roleApi = {
  37. // 查询角色列表(分页)
  38. getRolePage: (params?: PageParam) => {
  39. return axiosInstance.get<PageResponse<RoleVO>>('/system/role/page', { params });
  40. },
  41. // 查询角色(精简)列表
  42. getSimpleRoleList: () => {
  43. return axiosInstance.get<RoleVO[]>('/system/role/simple-list');
  44. },
  45. // 查询角色详情
  46. getRole: (id: number) => {
  47. return axiosInstance.get<RoleVO>(`/system/role/get?id=${id}`);
  48. },
  49. // 新增角色
  50. createRole: (data: RoleVO) => {
  51. return axiosInstance.post('/system/role/create', data);
  52. },
  53. // 修改角色
  54. updateRole: (data: RoleVO) => {
  55. return axiosInstance.put('/system/role/update', data);
  56. },
  57. // 修改角色状态
  58. updateRoleStatus: (data: UpdateStatusReqVO) => {
  59. return axiosInstance.put('/system/role/update-status', data);
  60. },
  61. // 删除角色
  62. deleteRole: (id: number) => {
  63. return axiosInstance.delete(`/system/role/delete?id=${id}`);
  64. },
  65. // 导出角色
  66. exportRole: (params?: PageParam) => {
  67. return axiosInstance.get('/system/role/export-excel', {
  68. params,
  69. responseType: 'blob'
  70. });
  71. },
  72. // 获取角色菜单权限列表
  73. getRoleMenuList: (roleId: number) => {
  74. return axiosInstance.get<number[]>(`/system/permission/list-role-menus?roleId=${roleId}`);
  75. },
  76. // 分配角色菜单权限
  77. assignRoleMenu: (params: {
  78. roleId: number;
  79. menuIds: number[];
  80. }) => {
  81. return axiosInstance.post('/system/permission/assign-role-menu', params);
  82. },
  83. // 分配角色数据权限
  84. assignRoleDataScope: (params: {
  85. roleId: number;
  86. dataScope: number;
  87. dataScopeDeptIds?: number[];
  88. }) => {
  89. return axiosInstance.post('/system/permission/assign-role-data-scope', params);
  90. },
  91. };