import axios from 'axios'; import { TableData } from '@arco-design/web-vue/es/table/interface'; /** * 菜单创建请求 */ export interface MenuCreateRequest { parentId?: number; name?: string; permission?: string; type?: number; sort?: number; visible?: number; cache?: number; icon?: string; path?: string; component?: string; } /** * 菜单更新请求 */ export interface MenuUpdateRequest extends MenuCreateRequest { id: number | undefined; status?: number; } /** * 菜单查询请求 */ export interface MenuQueryRequest { name?: string; status?: number; } /** * 菜单查询响应 */ export interface MenuQueryResponse extends TableData { id?: number; parentId?: number; name?: string; permission?: string; type?: number; sort?: number; visible?: number; status?: number; cache?: number; icon?: string; path?: string; component?: string; children?: Array; } /** * 查询菜单列表 */ export function getMenuList(request?: MenuQueryRequest) { return axios.post('/infra/system-menu/list', request); } /** * 创建菜单 */ export function createMenu(request: MenuCreateRequest) { return axios.post('/infra/system-menu/create', request); } /** * 修改菜单 */ export function updateMenu(request: MenuUpdateRequest) { return axios.put('/infra/system-menu/update', request); } /** * 修改菜单状态 */ export function updateMenuStatus(request: MenuUpdateRequest) { return axios.put('/infra/system-menu/update-status', request); } /** * 删除菜单 */ export function deleteMenu(id: number) { return axios.delete('/infra/system-menu/delete', { params: { id } }); } /** * 初始化缓存 */ export function initCache() { return axios.put('/infra/permission/init-cache'); }