menu.ts 1.56 KB
import { request } from '@/utils/request'
import type { Menu, PageRequest, PageResponse } from '@/types'

// 获取菜单列表
export function getMenuListApi(): Promise<Menu[]> {
  return request.get('/api/sys/menu/list')
}

// 获取菜单树
export function getMenuTreeApi(userId?: number): Promise<Menu[]> {
  return request.get('/api/sys/menu/tree', { userId })
}

// 获取菜单分页列表
export function getMenuPageApi(params: PageRequest & {
  menuName?: string
  path?: string
  menuType?: string
  perms?: string
}): Promise<PageResponse<Menu>> {
  return request.get('/api/sys/menu/page', params)
}

// 获取菜单详情
export function getMenuDetailApi(menuId: number): Promise<Menu> {
  return request.get(`/api/sys/menu/${menuId}`)
}

// 新增菜单
export function addMenuApi(data: Partial<Menu>): Promise<void> {
  return request.post('/api/sys/menu', data)
}

// 更新菜单
export function updateMenuApi(data: Partial<Menu>): Promise<void> {
  return request.put('/api/sys/menu', data)
}

// 删除菜单
export function deleteMenuApi(menuId: number): Promise<void> {
  return request.delete(`/api/sys/menu/${menuId}`)
}

// 批量删除菜单
export function deleteBatchMenuApi(menuIds: number[]): Promise<void> {
  return request.delete('/api/sys/menu/batch', { menuIds })
}

// 获取角色菜单树
export function getRoleMenuTreeApi(roleId: number): Promise<Menu[]> {
  return request.get(`/api/sys/menu/roleMenuTree/${roleId}`)
}

// 获取菜单选择树
export function getMenuSelectTreeApi(): Promise<Menu[]> {
  return request.get('/api/sys/menu/treeselect')
}