refactor: Simplified code

This commit is contained in:
FairyEver 2022-01-11 17:05:08 +08:00
parent b17e7de6ce
commit 83bad34ae4
4 changed files with 27 additions and 58 deletions

View File

@ -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'))

View File

@ -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))
}

View File

@ -1,11 +1,3 @@
<route>
{
"meta": {
"d2admin.menu.title": "首页"
}
}
</route>
<template>
<demo-page-placeholder/>
</template>

View File

@ -1,11 +1,3 @@
<route>
{
"meta": {
"d2admin.menu.title": "首页"
}
}
</route>
<template>
<demo-page-placeholder/>
</template>