提交代码

This commit is contained in:
zlwu committed 2025-08-26 00:41:33 +08:00
1 parent d5316b3d37
commit 5514c2a57e
1 file changed
+49 -2
+49 -2
View File
@@ -304,9 +304,21 @@ const flattenMenus = (menus: any[], parentChain: string[] = [], parentPath = '',
menus.forEach((menu, menuIndex) => {
// 跳过隐藏的菜单
if (menu.hidden === true) {
console.log(`跳过隐藏菜单: ${menu.meta?.title || menu.name}`);
return;
}
// 添加调试信息,特别关注工作流菜单
if (menu.meta?.title === '工作流' || menu.name === 'Workflow11616') {
console.log('=== 工作流菜单处理开始 ===');
console.log('工作流菜单原始数据:', menu);
console.log('工作流菜单组件类型:', menu.component);
console.log('工作流菜单是否有子菜单:', !!menu.children);
console.log('工作流菜单子菜单数量:', menu.children?.length || 0);
console.log('工作流菜单层级:', level);
console.log('工作流菜单父路径:', parentPath);
}
// 构建完整路径 - 移到外层,确保在递归调用中也能访问
let fullPath = menu.path;
@@ -363,8 +375,40 @@ const flattenMenus = (menus: any[], parentChain: string[] = [], parentPath = '',
// 检查是否有可见的子菜单
const hasVisibleChildren = menu.children && menu.children.some((child: any) => !child.hidden);
// 只有叶子节点(没有子菜单或子菜单都是隐藏的)才作为可点击的菜单项
if (!hasVisibleChildren && fullPath && fullPath !== '/') {
// 检查是否为目录类型菜单
// 1. 组件为Layout或ParentView字符串
// 2. 组件为Vue对象且没有子菜单(可能是目录)
// 3. menuType为'M'(目录类型)
const isDirectoryMenu = menu.component === 'Layout' ||
menu.component === 'ParentView' ||
(typeof menu.component === 'object' && !hasVisibleChildren) ||
menu.menuType === 'M';
// 添加工作流菜单的详细调试信息
if (menu.meta?.title === '工作流' || menu.name === 'Workflow11616') {
console.log('=== 工作流菜单判断过程 ===');
console.log('hasVisibleChildren:', hasVisibleChildren);
console.log('isDirectoryMenu:', isDirectoryMenu);
console.log('menu.component:', menu.component);
console.log('menu.component类型:', typeof menu.component);
console.log('menu.menuType:', menu.menuType);
console.log('menu.children:', menu.children);
console.log('fullPath:', fullPath);
console.log('level:', level);
console.log('是否应该创建菜单项:', !hasVisibleChildren && !isDirectoryMenu && fullPath && fullPath !== '/');
console.log('完整菜单对象:', JSON.stringify(menu, null, 2));
}
// 目录菜单处理逻辑:如果是目录菜单且没有子菜单,直接跳过
if (isDirectoryMenu && !hasVisibleChildren) {
if (menu.meta?.title === '工作流' || menu.name === 'Workflow11616') {
console.log('=== 工作流菜单被跳过 ===');
console.log('原因: 是目录菜单且没有子菜单');
}
// 不创建菜单项,直接跳过
}
// 只有叶子节点(没有子菜单或子菜单都是隐藏的)且不是目录菜单才作为可点击的菜单项
else if (!hasVisibleChildren && !isDirectoryMenu && fullPath && fullPath !== '/') {
const menuAction: MenuAction = {
id: `menu-${menu.name || fullPath}`,
title: menu.meta.title,
@@ -389,6 +433,9 @@ const flattenMenus = (menus: any[], parentChain: string[] = [], parentPath = '',
);
result.push(menuAction);
} else if (menu.meta?.title === '工作流' || menu.name === 'Workflow11616') {
console.log('=== 工作流菜单被过滤掉 ===');
console.log('原因: 是目录菜单或没有有效路径');
}
}