Files
ReelShortWeb/src/api/admin/role.ts
T

88 lines
2.4 KiB
TypeScript

// 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<PageResult<RoleItem>>({ url: '/admin/roles/page', params })
}
export const listRolesApi = () => {
return request.get<RoleItem[]>({ url: '/admin/roles/list' })
}
export const createRoleApi = (data: RoleSaveData) => {
return request.post<number>({ url: '/admin/roles', data })
}
export const updateRoleApi = (id: number, data: RoleSaveData) => {
return request.put<void>({ url: `/admin/roles/${id}`, data })
}
export const deleteRoleApi = (id: number) => {
return request.delete<void>({ url: `/admin/roles/${id}` })
}
export const getRolePermissionsApi = (id: number) => {
return request.get<string[]>({ url: `/admin/roles/${id}/permissions` })
}
export const updateRolePermissionsApi = (id: number, permissions: string[]) => {
return request.put<void>({ url: `/admin/roles/${id}/permissions`, data: { permissions } })
}
export const listPermissionGroupsApi = () => {
return request.get<PermissionGroup[]>({ url: '/admin/permissions' })
}
export interface RoleCategorySaveData {
name: string
description?: string
}
export const listRoleCategoriesApi = () => {
return request.get<RoleCategoryItem[]>({ url: '/admin/role-categories' })
}
export const createRoleCategoryApi = (data: RoleCategorySaveData) => {
return request.post<number>({ url: '/admin/role-categories', data })
}
export const updateRoleCategoryApi = (id: number, data: RoleCategorySaveData) => {
return request.put<void>({ url: `/admin/role-categories/${id}`, data })
}
export const deleteRoleCategoryApi = (id: number) => {
return request.delete<void>({ url: `/admin/role-categories/${id}` })
}
export const getMenuTreeApi = () => {
return request.get<MenuNode[]>({ url: '/admin/menus/tree' })
}
export const createMenuApi = (data: MenuSaveData) => {
return request.post<number>({ url: '/admin/menus', data })
}
export const updateMenuApi = (id: number, data: MenuSaveData) => {
return request.put<void>({ url: `/admin/menus/${id}`, data })
}
export const deleteMenuApi = (id: number) => {
return request.delete<void>({ url: `/admin/menus/${id}` })
}