feat: add dynamic title form HTML; 🌟 #97

新增:增加动态 HTML 标题;
This commit is contained in:
iczer
2020-08-05 11:50:28 +08:00
parent 817ee10a7a
commit 48bb1c4bb1
3 changed files with 26 additions and 11 deletions

View File

@@ -41,22 +41,27 @@ function generateI18n(lang, routes, valueKey) {
}
/**
* 格式化 router options生成 fullPath
* @param options
* 格式化 router.options.routes,生成 fullPath
* @param routes
* @param parentPath
*/
function formatOptions(options, parentPath) {
options.forEach(route => {
function formatFullPath(routes, parentPath = '') {
routes.forEach(route => {
let isFullPath = route.path.substring(0, 1) === '/'
route.fullPath = isFullPath ? route.path : parentPath + '/' + route.path
route.fullPath = isFullPath ? route.path : (parentPath === '/' ? parentPath + route.path : parentPath + '/' + route.path)
if (route.children) {
formatOptions(route.children, route.fullPath)
formatFullPath(route.children, route.fullPath)
}
})
}
/**
* 从路由提取国际化数据
* @param i18n
* @param routes
*/
function mergeI18nFromRoutes(i18n, routes) {
formatOptions(routes, '')
formatFullPath(routes)
const CN = generateI18n(new Object(), routes, 'name')
const US = generateI18n(new Object(), routes, 'path')
i18n.mergeLocaleMessage('CN', CN)

View File

@@ -71,11 +71,12 @@ function loadRoutes({router, store, i18n}, routesConfig) {
router.addRoutes(finalRoutes)
}
}
// 提取路由国际化数据
mergeI18nFromRoutes(i18n, router.options.routes)
// 初始化Admin后台菜单数据
const rootRoute = router.options.routes.find(item => item.path === '/')
const menuRoutes = rootRoute && rootRoute.children
if (menuRoutes) {
mergeI18nFromRoutes(i18n, menuRoutes)
store.commit('setting/setMenuData', menuRoutes)
}
}