import request from '@/utils/request'; import type { MenuResponse, MenuRequest } from './types'; import { MenuTypeEnum } from './types'; import {Page} from "@/types/base"; 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: 1000, // createTime: new Date().toISOString(), // updateTime: new Date().toISOString(), // version: 0, // name: "流程实例", // path: "/workflow/instance", // component: "/Workflow/Instance/index", // icon: "instance", // type: MenuTypeEnum.DIRECTORY, // parentId: -2, // sort: 1, // hidden: false, // enabled: true, // createBy: "system", // updateBy: "system", // children: [ // { // id: 1001, // createTime: new Date().toISOString(), // updateTime: new Date().toISOString(), // version: 0, // name: "工作流实例", // path: "/workflow/instance", // component: "/Workflow/Instance/index", // icon: "instance", // type: MenuTypeEnum.MENU, // parentId: 1000, // sort: 1, // hidden: false // }, // { // id: 1002, // createTime: new Date().toISOString(), // updateTime: new Date().toISOString(), // version: 0, // name: "节点设计", // path: "/workflow/node-design", // component: "/Workflow/NodeDesign/index", // icon: "node-design", // type: MenuTypeEnum.MENU, // parentId: 1000, // sort: 2, // hidden: false // } // ] // }, // { // 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 = [ ...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}`);