diff --git a/d2/menus/index.js b/d2/menus/index.js
index 92d27443..c4437a3c 100644
--- a/d2/menus/index.js
+++ b/d2/menus/index.js
@@ -1,56 +1,47 @@
-import { Menu, routeMenus } from 'd2/utils/menu.js'
+import { Menu, createRouteMenus } from 'd2/utils/menu.js'
-export const dashboardIndexMenu = new Menu('控制台').url('/dashboard').icon('icon-park-outline:dashboard')
+const menus = baseUrl => createRouteMenus({
+ routeNameExp: new RegExp(`^dashboard-${baseUrl.replace(/\//g, '-')}`),
+ baseUrl
+})
-export const indexMenu = new Menu('首页').url('/').icon('icon-park-outline:home')
+export const dashboardIndexMenu = new Menu('控制台')
+ .url('/dashboard')
+ .icon('icon-park-outline:dashboard')
+
+export const indexMenu = new Menu('首页')
+ .url('/')
+ .icon('icon-park-outline:home')
export const dashboardDemoComponentD2ScrollMenus = new Menu('滚动')
.icon('icon-park-outline:move')
.scope('/dashboard/demo/component/d2-scroll')
- .add(routeMenus({
- match: /^dashboard-demo-component-d2-scroll/,
- basePath: 'demo/component/d2-scroll'
- }))
+ .add(menus('demo/component/d2-scroll'))
export const dashboardDemoComponentD2SvgMenus = new Menu('SVG')
.icon('icon-park-outline:pic-one')
.scope('/dashboard/demo/component/d2-svg')
- .add(routeMenus({
- match: /^dashboard-demo-component-d2-svg/,
- basePath: 'demo/component/d2-svg'
- }))
+ .add(menus('demo/component/d2-svg'))
export const dashboardDemoComponentD2IconMenus = new Menu('图标')
.icon('icon-park-outline:emotion-happy')
.scope('/dashboard/demo/component/d2-icon')
- .add(routeMenus({
- match: /^dashboard-demo-component-d2-icon/,
- basePath: 'demo/component/d2-icon'
- }))
+ .add(menus('demo/component/d2-icon'))
export const dashboardDemoComponentD2BreakPointMenus = new Menu('断点')
.icon('icon-park-outline:distribute-horizontally')
.scope('/dashboard/demo/component/d2-break-point')
- .add(routeMenus({
- match: /^dashboard-demo-component-d2-break-point/,
- basePath: 'demo/component/d2-break-point'
- }))
+ .add(menus('demo/component/d2-break-point'))
export const dashboardDemoComponentD2FlexMenus = new Menu('Flex')
.icon('icon-park-outline:carousel')
.scope('/dashboard/demo/component/d2-flex')
- .add(routeMenus({
- match: /^dashboard-demo-component-d2-flex/,
- basePath: 'demo/component/d2-flex'
- }))
+ .add(menus('demo/component/d2-flex'))
export const dashboardDemoComponentSTableMenus = new Menu('Surely Vue')
.icon('icon-park-outline:table-file')
.scope('/dashboard/demo/component/s-table')
- .add(routeMenus({
- match: /^dashboard-demo-component-s-table/,
- basePath: 'demo/component/s-table'
- }))
+ .add(menus('demo/component/s-table'))
export const dashboardDemoComponentMenus = new Menu('组件')
.icon('icon-park-outline:components')
@@ -65,10 +56,7 @@ export const dashboardDemoComponentMenus = new Menu('组件')
export const dashboardDemoLayoutDashboardMenus = new Menu('控制台布局')
.icon('icon-park-outline:page')
.scope('/dashboard/demo/layout/dashboard')
- .add(routeMenus({
- match: /^dashboard-demo-layout-dashboard/,
- basePath: 'demo/layout/dashboard'
- }))
+ .add(menus('demo/layout/dashboard'))
export const dashboardDemoLayoutMenus = new Menu('布局')
.icon('icon-park-outline:page')
@@ -78,7 +66,4 @@ export const dashboardDemoLayoutMenus = new Menu('布局')
export const dashboardDocumentMenus = new Menu('文档')
.icon('icon-park-outline:doc-detail')
.scope('/dashboard/document')
- .add(routeMenus({
- match: /^dashboard-document/,
- basePath: 'document'
- }))
+ .add(menus('document'))
diff --git a/d2/utils/menu.js b/d2/utils/menu.js
index 0da2318b..0c4cb0e2 100644
--- a/d2/utils/menu.js
+++ b/d2/utils/menu.js
@@ -111,18 +111,18 @@ function filterRoutes (rule) {
return routesFlat.filter(route => rule.test(route.name))
}
-function createRouteMenu (route, basePath) {
- const url = route.path.replace(RegExp(`^${basePath}`), '')
- const title = get(route.meta, 'd2admin.menu.title', url || '/')
+function createRouteMenu (route, baseUrl) {
+ const url = route.path.replace(new RegExp(`^${baseUrl}`), '')
+ const title = get(route.meta, 'd2admin.menu.title', url || '首页')
if (!url) {
return new Menu(title).index()
}
return new Menu(title).url(url)
}
-export function routeMenus ({
- match = /.+/,
- basePath = ''
+export function createRouteMenus ({
+ routeNameExp = /.+/,
+ baseUrl = ''
} = {}) {
- return filterRoutes(match).map(route => createRouteMenu(route, basePath))
+ return filterRoutes(routeNameExp).map(route => createRouteMenu(route, baseUrl))
}
diff --git a/d2/views/dashboard/demo/component/d2-flex/index.vue b/d2/views/dashboard/demo/component/d2-flex/index.vue
index 97898d18..4ba1fbf3 100644
--- a/d2/views/dashboard/demo/component/d2-flex/index.vue
+++ b/d2/views/dashboard/demo/component/d2-flex/index.vue
@@ -1,11 +1,3 @@
-
-{
- "meta": {
- "d2admin.menu.title": "首页"
- }
-}
-
-
diff --git a/d2/views/dashboard/demo/layout/dashboard/index.vue b/d2/views/dashboard/demo/layout/dashboard/index.vue
index 97898d18..4ba1fbf3 100644
--- a/d2/views/dashboard/demo/layout/dashboard/index.vue
+++ b/d2/views/dashboard/demo/layout/dashboard/index.vue
@@ -1,11 +1,3 @@
-
-{
- "meta": {
- "d2admin.menu.title": "首页"
- }
-}
-
-