Files
iotlcm/vue/apps/web-antd/src/api/system/menu.ts
T
2026-10-29 14:43:14 +08:00

123 lines
2.9 KiB
TypeScript

/**
* @description 菜单管理相关接口
* @Link https://github.com/xiujiecn/xiu-admin
* @Copyright Copyright (c) 2025 LiXiujie
* @Author Lxj <xxx@example.com>
* @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
* @date 2024-03-21
*/
import { requestClient } from '#/api/request';
import { useCacheStore } from "#/store/cache";
const KEY = "menmenuuList";
export interface SysMenuListReq {
menuName: string;
status: string;
}
export interface SysMenuListData {
menuId: number;
menuName: string;
parentId: number;
orderNum: number;
path: string;
component: string;
queryParam: string;
isFrame: number;
isCache: number;
menuType: string;
visible: string;
status: string;
perms: string;
icon: string;
createdDept: number;
createdBy: number;
createdAt: string;
remark: string;
children?: SysMenuListData[];
}
export interface SysMenuListRes {
items: SysMenuListData[];
total: number;
}
export interface SysMenuTreeRes {
items: SysMenuListData[];
}
export interface SysMenuViewReq {
menuId: number;
}
export interface SysMenuViewRes extends SysMenuListData {}
export interface SysMenuAddReq {
menuName: string;
parentId: number;
orderNum: number;
path: string;
component: string;
queryParam: string;
isFrame: number;
isCache: number;
menuType: string;
visible: string;
status: string;
perms: string;
icon: string;
remark: string;
}
export interface SysMenuUpdateReq {
menuId: number;
menuName?: string;
parentId?: number;
orderNum?: number;
path?: string;
component?: string;
queryParam?: string;
isFrame?: number;
isCache?: number;
menuType?: string;
visible?: string;
status?: string;
perms?: string;
icon?: string;
remark?: string;
}
export interface SysMenuDeleteReq {
menuId: number;
}
export async function getSysMenuListApi(params?: SysMenuListReq) {
return useCacheStore().getCache(params?params:{}, KEY, () => requestClient.get<SysMenuListRes>('/system/menu/list', { params }));
}
/**
* 获取菜单树(后端已建好嵌套 children,前端无需再开启 treeConfig.transform 二次建树)
*/
export async function getSysMenuTreeApi(params?: SysMenuListReq) {
return requestClient.get<SysMenuTreeRes>('/system/menu/tree', { params });
}
export async function getSysMenuViewApi(params: SysMenuViewReq) {
return requestClient.get<SysMenuViewRes>('/system/menu/view', { params });
}
export async function updateSysMenuApi(params: SysMenuUpdateReq|any) {
useCacheStore().clearCache(KEY);
return requestClient.post('/system/menu/update', { ...params });
}
export async function deleteSysMenuApi(params: SysMenuDeleteReq|any) {
useCacheStore().clearCache(KEY);
return requestClient.post('/system/menu/delete', { ...params });
}
export async function addSysMenuApi(params: SysMenuAddReq|any) {
useCacheStore().clearCache(KEY);
return requestClient.post('/system/menu/add', { ...params });
}