// Author: fruit.com.cn import request from '@/axios' import type { MenuNode, MenuSaveData, PageResult, PermissionGroup, RoleCategoryItem, RoleItem, RoleSaveData } from './types' export interface RolePageParams { keyword?: string pageIndex?: number pageSize?: number } export const pageRolesApi = (params: RolePageParams) => { return request.get>({ url: '/admin/roles/page', params }) } export const listRolesApi = () => { return request.get({ url: '/admin/roles/list' }) } export const createRoleApi = (data: RoleSaveData) => { return request.post({ url: '/admin/roles', data }) } export const updateRoleApi = (id: number, data: RoleSaveData) => { return request.put({ url: `/admin/roles/${id}`, data }) } export const deleteRoleApi = (id: number) => { return request.delete({ url: `/admin/roles/${id}` }) } export const getRolePermissionsApi = (id: number) => { return request.get({ url: `/admin/roles/${id}/permissions` }) } export const updateRolePermissionsApi = (id: number, permissions: string[]) => { return request.put({ url: `/admin/roles/${id}/permissions`, data: { permissions } }) } export const listPermissionGroupsApi = () => { return request.get({ url: '/admin/permissions' }) } export interface RoleCategorySaveData { name: string description?: string } export const listRoleCategoriesApi = () => { return request.get({ url: '/admin/role-categories' }) } export const createRoleCategoryApi = (data: RoleCategorySaveData) => { return request.post({ url: '/admin/role-categories', data }) } export const updateRoleCategoryApi = (id: number, data: RoleCategorySaveData) => { return request.put({ url: `/admin/role-categories/${id}`, data }) } export const deleteRoleCategoryApi = (id: number) => { return request.delete({ url: `/admin/role-categories/${id}` }) } export const getMenuTreeApi = () => { return request.get({ url: '/admin/menus/tree' }) } export const createMenuApi = (data: MenuSaveData) => { return request.post({ url: '/admin/menus', data }) } export const updateMenuApi = (id: number, data: MenuSaveData) => { return request.put({ url: `/admin/menus/${id}`, data }) } export const deleteMenuApi = (id: number) => { return request.delete({ url: `/admin/menus/${id}` }) }