2025-07-15 14:19:43 +08:00

91 lines
1.8 KiB
TypeScript

import http from "@/utils/request";
export interface RawMenu {
uuid:string;
parentId:string;
path: string;
label: string;
icon: string;
menuCode: string;
adaptability: string;
component: string;
sort: number;
status: string;
query: string;
}
// 返回的树结构
export type MenuTree = {
uuid: string;
parentId: null; // 根节点的parentId必须为null
path: string;
label: string;
icon: string;
menuCode: string;
adaptability: string;
component: string;
sort: number;
status: string;
query: string;
children: MenuNode[];
};
export type MenuNode = {
uuid: string;
parentId: string; // 子节点的parentId必须为字符串
path: string;
label: string;
icon: string;
menuCode: string;
adaptability: string;
component: string;
sort: number;
status: string;
query: string;
children: MenuNode[];
};
// 新增父级菜单
export function addParentMenu(data: Omit<RawMenu, "uuid" | "parentId">) {
return http({
url: "/api/Menu/create-parent",
method: "POST",
data,
});
}
// 编辑父级菜单
export function editParentMenu(data: Omit<RawMenu, "parentId">) {
return http({
url: "/api/Menu/update-parent",
method: "PUT",
data,
});
}
// 新增子级菜单
export function addChildMenu(data:Omit<RawMenu, "uuid">){
return http({
url:'/api/Menu/create-child',
method:'POST',
data
})
}
// 编辑子级菜单
export function eidtChildMenu(data:RawMenu){
return http({
url:'/api/Menu/update-child',
method:'PUT',
data
})
}
//菜单全量返回
export function getAllMenu():Promise<MenuTree[]>{
return http({
url:'/api/Menu/all',
method:'GET',
})
}
// 递归删除菜单
export function deleteMenu(uuid:string){
return http({
url:`/api/Menu/all/${uuid}`,
method:'DELETE'
})
}