diff --git a/yudao-ui-admin/src/store/modules/permission.js b/yudao-ui-admin/src/store/modules/permission.js index 005c98f0f..4ddd9d2ac 100644 --- a/yudao-ui-admin/src/store/modules/permission.js +++ b/yudao-ui-admin/src/store/modules/permission.js @@ -2,6 +2,7 @@ import { constantRoutes } from '@/router' import { getRouters } from '@/api/menu' import Layout from '@/layout/index' import ParentView from '@/components/ParentView'; +import { toCamelCase } from "@/utils"; const permission = { state: { @@ -56,6 +57,8 @@ function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) { icon: route.icon, noCache: !route.keepAlive, } + // 路由地址转首字母大写驼峰,作为路由名称,适配keepAlive + route.name = toCamelCase(route.path, true) route.hidden = !route.visible // 处理 component 属性 if (route.children) { // 父节点 diff --git a/yudao-ui-admin/src/utils/index.js b/yudao-ui-admin/src/utils/index.js index 5061c2228..075fd5af4 100644 --- a/yudao-ui-admin/src/utils/index.js +++ b/yudao-ui-admin/src/utils/index.js @@ -427,3 +427,15 @@ export function isNumberStr(str) { return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) } +// -转驼峰 +export function toCamelCase(str, upperCaseFirst) { + str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) { + return group1.toUpperCase(); + }); + + if (upperCaseFirst && str) { + str = str.charAt(0).toUpperCase() + str.slice(1); + } + + return str; +}