import request from '@/utils/request'; import type { Page } from '@/types/base/page'; import type { MenuResponse, MenuRequest } from './types'; import { MenuTypeEnum } from './types'; const BASE_URL = '/api/v1/menu'; // 获取菜单列表(分页) export const getMenus = (params?: any) => request.get>(`${BASE_URL}/page`, { params }); // 获取菜单树 export const getMenuTree = () => request.get(`${BASE_URL}/tree`); // 获取当前用户菜单 export const getCurrentUserMenus = async () => { const menus = await request.get(`${BASE_URL}/current`); console.log('Backend menus:', menus); // 添加首页路由 const dashboard: MenuResponse = { id: 0, createTime: new Date().toISOString(), updateTime: new Date().toISOString(), version: 0, name: "首页", path: "/dashboard", component: "/Dashboard/index", icon: "dashboard", type: MenuTypeEnum.MENU, parentId: 0, sort: 0, hidden: false, enabled: true, createBy: "system", updateBy: "system" }; // 添加工作流菜单 const workflow: MenuResponse = { id: -2, createTime: new Date().toISOString(), updateTime: new Date().toISOString(), version: 0, name: "工作流管理", path: "/workflow", icon: "apartment", type: MenuTypeEnum.DIRECTORY, parentId: 0, sort: 2, hidden: false, enabled: true, createBy: "system", updateBy: "system", children: [ { id: -21, createTime: new Date().toISOString(), updateTime: new Date().toISOString(), version: 0, name: "流程定义", path: "/workflow/definition", component: "/pages/Workflow/Definition/index", icon: "apartment", type: MenuTypeEnum.MENU, parentId: -2, sort: 0, hidden: false, enabled: true, createBy: "system", updateBy: "system" }, { id: -22, createTime: new Date().toISOString(), updateTime: new Date().toISOString(), version: 0, name: "流程实例", path: "/workflow/instance", component: "/pages/Workflow/Instance/index", icon: "apartment", type: MenuTypeEnum.MENU, parentId: -2, sort: 1, hidden: false, enabled: true, createBy: "system", updateBy: "system" }, { id: -23, createTime: new Date().toISOString(), updateTime: new Date().toISOString(), version: 0, name: "流程监控", path: "/workflow/monitor", component: "/pages/Workflow/Monitor/index", icon: "dashboard", type: MenuTypeEnum.MENU, parentId: -2, sort: 2, hidden: false, enabled: true, createBy: "system", updateBy: "system" }, { id: -24, createTime: new Date().toISOString(), updateTime: new Date().toISOString(), version: 0, name: "日志流", path: "/workflow/log-stream/:processInstanceId", component: "/pages/LogStream/index", icon: "file-text", type: MenuTypeEnum.MENU, parentId: -2, sort: 3, hidden: false, enabled: true, createBy: "system", updateBy: "system" } ] }; // 添加X6测试菜单 // const x6Test: MenuResponse = { // id: -1, // createTime: new Date().toISOString(), // updateTime: new Date().toISOString(), // version: 0, // name: "X6测试", // path: "/x6-test", // component: "/X6Test/index", // icon: "experiment", // type: MenuTypeEnum.MENU, // parentId: 0, // sort: 1, // hidden: false, // enabled: true, // createBy: "system", // updateBy: "system" // }; // 处理组件路径格式 const processMenu = (menu: MenuResponse): MenuResponse => { const processed = { ...menu }; // 确保组件路径格式正确 if (processed.component && !processed.component.startsWith('/')) { processed.component = `/${processed.component}`; } // 递归处理子菜单 if (processed.children) { processed.children = processed.children.map(processMenu); } return processed; }; const processedMenus = menus.map(processMenu); const allMenus = [dashboard, workflow, ...processedMenus]; console.log('All menus:', allMenus); return allMenus; }; // 创建菜单 export const createMenu = (data: MenuRequest) => request.post(BASE_URL, data); // 更新菜单 export const updateMenu = (id: number, data: MenuRequest) => request.put(`${BASE_URL}/${id}`, data); // 删除菜单 export const deleteMenu = (id: number) => request.delete(`${BASE_URL}/${id}`);