91 lines
1.8 KiB
TypeScript
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'
|
|
})
|
|
} |