menu.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import http from '@/api'
  2. import { MenuQuery, MenuVO, MenuForm, MenuTreeOption, RoleMenuTree } from '@/api/interface/system/menu'
  3. import { RouteRecordRaw } from 'vue-router'
  4. // 获取路由
  5. export const getRoutersApi = () => {
  6. return http.get<RouteRecordRaw[]>('/system/menu/getRouters', {}, { loading: false })
  7. }
  8. /**
  9. * @name 查询菜单列表
  10. * @param query 参数
  11. * @returns 返回列表
  12. */
  13. export const listMenuApi = (query?: MenuQuery) => {
  14. return http.get<MenuVO[]>('/system/menu/list', query, { loading: false })
  15. }
  16. /**
  17. * @name 查询菜单详细
  18. * @param menuId menuId
  19. * @returns returns
  20. */
  21. export const getMenuApi = (menuId: string | number) => {
  22. return http.get<MenuVO>(`/system/menu/${menuId}`)
  23. }
  24. /**
  25. * @name 新增菜单
  26. * @param data data
  27. * @returns returns
  28. */
  29. export const addMenuApi = (data: MenuForm) => {
  30. return http.post<any>('/system/menu', data, { loading: false })
  31. }
  32. /**
  33. * @name 修改菜单
  34. * @param data data
  35. * @returns returns
  36. */
  37. export const updateMenuApi = (data: MenuForm) => {
  38. return http.put<any>('/system/menu', data, { loading: false })
  39. }
  40. /**
  41. * @name 删除菜单
  42. * @param menuId menuId
  43. * @returns returns
  44. */
  45. export const delMenuApi = (menuId: string | number) => {
  46. return http.delete<any>(`/system/menu/${menuId}`)
  47. }
  48. /**
  49. * @name 查询菜单下拉树结构
  50. * @returns returns
  51. */
  52. export const treeSelectApi = () => {
  53. return http.get<MenuTreeOption[]>(`/system/menu/treeselect`)
  54. }
  55. /**
  56. * @name 根据角色ID查询菜单下拉树结构
  57. * @param roleId roleId
  58. * @returns returns
  59. */
  60. export const roleMenuTreeselectApi = (roleId: string | number) => {
  61. return http.get<RoleMenuTree>(`/system/menu/roleMenuTreeselect/${roleId}`)
  62. }