42 lines
1.7 KiB
TypeScript
42 lines
1.7 KiB
TypeScript
import { request } from "@/api/request";
|
|
|
|
export interface MenuItem {
|
|
id?: number;
|
|
identity?: string;
|
|
code?: string;
|
|
description?: string;
|
|
menu_icon?: string;
|
|
menu_path?: string;
|
|
parent_id?: number | null;
|
|
title?: string;
|
|
title_en?: string;
|
|
type?: number;
|
|
sort_key?: number;
|
|
order?: number; // 排序字段(用于本地排序)
|
|
app_id?: number;
|
|
created_at?: string;
|
|
children?: MenuItem[];
|
|
is_web_page?: boolean; // 是否为网页
|
|
web_url?: string; // 嵌入的网页URL
|
|
component?: string; // 路由文件地址
|
|
is_new_tab?: boolean; // 是否在新窗口打开
|
|
}
|
|
|
|
/** 获取菜单 */
|
|
export const fetchMenu = (data: { page: number, size: number }) => request.post("/rbac2/v1/pmn/fetch", data, { needWorkspace: true });
|
|
/** 创建菜单 */
|
|
export const createMenu = (data: MenuItem) => request.post("/rbac2/v1/pmn/create", data, { needWorkspace: true });
|
|
/** 修改菜单 */
|
|
export const modifyMenu = (data: MenuItem) => request.post("/rbac2/v1/pmn/modify", data, { needWorkspace: true });
|
|
/** 删除菜单 */
|
|
export const deleteMenu = (data: { id: MenuItem['id'] }) => request.post("/rbac2/v1/pmn/del", data, { needWorkspace: true });
|
|
/** 更新菜单排序 */
|
|
export const updateMenuOrder = (data: { pmn_id: number, sort_key: number }[]) =>
|
|
request.post("/rbac2/v1/pmn/sort", data);
|
|
|
|
/** 用户-给指定用户设置权限 */
|
|
export const userPmn = (data: { code: string; list: { id: number, pmn_id: number }[] }) => request.post("/rbac2/v1/pmn/user_pmn", data, { needWorkspace: true });
|
|
|
|
/** 用户-给指定用户设置权限 */
|
|
export const userSetPmn = (data: { list: { id: number, pmn_id: number }[] }) => request.post("/rbac2/v1/pmn/user/set_pmn", data, { needWorkspace: true });
|