import React from "react"; import { DashboardOutlined, FileProtectOutlined, TeamOutlined, BankOutlined, UserSwitchOutlined, IdcardOutlined, SafetyCertificateOutlined, ToolOutlined, UserOutlined, BarChartOutlined, PieChartOutlined, ExperimentOutlined, ShopOutlined, ApartmentOutlined, SwapOutlined, LogoutOutlined, FileTextOutlined, KeyOutlined, FormOutlined, CheckCircleOutlined, SyncOutlined, } from "@ant-design/icons"; const menuItems = [ { key: "/safetyEval/container/Supervision", label: "监管端", icon: , children: [ { key: "/safetyEval/container/Supervision/BasicInfo", label: "基础信息管理", icon: , children: [ { key: "/safetyEval/container/Supervision/BasicInfo/OrgAccount", label: "机构账号管理", icon: , }, { key: "/safetyEval/container/Supervision/BasicInfo/RegisteredOrg/List", label: "已备案机构管理", icon: , }, { key: "/safetyEval/container/Supervision/BasicInfo/EvaluatorInfo", label: "评价师信息管理", icon: , }, { key: "/safetyEval/container/Supervision/BasicInfo/EnterprisePortrait", label: "企业画像管理", icon: , }, ], }, ] }, { key: "/safetyEval/container/EnterpriseInfo", label: "企业信息管理", icon: , children: [ { key: "/safetyEval/container/EnterpriseInfo/OrgInfo", label: "机构信息管理", icon: , }, { key: "/safetyEval/container/EnterpriseInfo/QualificationCert", label: "资质信息管理", icon: , }, { key: "/safetyEval/container/EnterpriseInfo/PersonnelChange", label: "人员变更管理", icon: , }, { key: "/safetyEval/container/EnterpriseInfo/PersonnelInfo/List", label: "人员信息管理", icon: , }, { key: "/safetyEval/container/EnterpriseInfo/DepartmentPosition", label: "部门岗位管理", icon: , }, { key: "/safetyEval/container/EnterpriseInfo/ResignationApply", label: "人员离职申请", icon: , }, { key: "/safetyEval/container/EnterpriseInfo/EquipInfo", label: "装备信息管理", icon: , }, ], }, { key: "/safetyEval/container/qualApplication", label: "资质申请管理", icon: , children: [ { key: "/safetyEval/container/qualApplication/filingApplication/list", label: "资质备案申请", icon: , }, { key: "/safetyEval/container/qualApplication/filedManage/list", label: "已备案资质管理", icon: , }, { key: "/safetyEval/container/qualApplication/filingChange/list", label: "备案变更管理", icon: , }, ], }, ]; export default menuItems; /** 扁平化菜单 */ export function flattenMenu(items) { const result = []; function walk(list) { for (const item of list) { result.push(item); if (item.children) walk(item.children); } } walk(items); return result; } /** * 根据路径查找面包屑路径 * 返回从根到叶子节点的菜单项数组 */ export function findMenuPath(path) { function search(items, ancestors) { for (const item of items) { const current = [...ancestors, item]; if (item.key === path) { return current; } if (item.children) { const found = search(item.children, current); if (found) return found; } } return null; } return search(menuItems, []) || []; } /** * 根据路径获取页面标签名 */ export function getPageLabel(path) { const flat = flattenMenu(menuItems); const item = flat.find((m) => m.key === path); return item?.label || path.split("/").filter(Boolean).pop() || "未命名页面"; } /** * 根据路径获取默认展开的菜单项 */ export function getOpenKeys(path) { const breadcrumb = findMenuPath(path); return breadcrumb.slice(0, -1).map((i) => i.key); } /** * 根据路径获取选中的菜单项 */ export function getSelectedKeys(path) { const allPaths = flattenMenu(menuItems).map((m) => m.key); let match = ""; for (const p of allPaths) { if (path.startsWith(p) && p.length > match.length) { match = p; } } return match ? [match] : []; }