From 4174b70963b03c6d4be5312cb19d9ed725e8e30e Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Mon, 18 Nov 2024 18:33:23 +0800 Subject: [PATCH] =?UTF-8?q?store/permission=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/permission.js | 53 ++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index 232c00e..1096e9e 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -120,26 +120,50 @@ export function generaMenu(routes, data) { } else if(/^\^/.test(item.path)){ const menu = { + name: item.children?.length > 1 ? 'menu_' + item.id : item.children[0]?.id, path: pathHandler(item), component: Layout, - children: [{ - path: "", - name: 'menu_' + item.id, - // component: (item.url.includes('#')||item.path == '') ? Layout : loadView(item.url), - component: Layout, - meta: { - title: item.name, - id: item.id, - roles: ['admin'], - params, + meta: { + title: item.children?.length > 1 ? item.name : item.children[0]?.name, + id: item.children?.length > 1 ? item.id : item.children[0]?.id, + roles: ['admin'], + params, - icon: item.icon - } - }, ] + icon: item.children?.length > 1 ? item.icon : item.children[0]?.icon + }, + children: [] } if (item.children) { + if (item.children.length > 1) { + menu['redirect'] = `${pathHandler(item)}${item.children[0].path}` + item.children.unshift({ + id: item.id, + name: item.name, + path: item.path.replace(/\^/g,""), + url: item.url, + icon: item.icon, + children: [], + hidden: true + }) + } else { + menu.children.push({ + path: "", + name: 'menu_' + item.id, + component: (item.url.includes('#')||item.path == '') ? Layout : loadView(item.url), + // component: Layout, + meta: { + title: item.name, + id: item.id, + roles: ['admin'], + params, + + icon: item.icon + } + }) + } generaMenu(menu.children, item.children) } + console.log(77, menu) routes.push(menu) } else { const menu = { @@ -157,7 +181,8 @@ export function generaMenu(routes, data) { auths:item.has_auth_node_tags, params, icon: item.icon - } + }, + hidden: item.hidden } if(item.path?.includes("$")){ menu.hidden = true