This commit is contained in:
张成
2025-10-08 16:48:44 +08:00
parent eae1156548
commit 54d4c19cb1
4 changed files with 41 additions and 15 deletions

View File

@@ -117,12 +117,13 @@ class AdminFramework {
* @param {Object} options.VueRouter - VueRouter 实例(可选)
* @param {Object} options.Vuex - Vuex 实例(可选)
* @param {Function} options.createPersistedState - vuex-persistedstate可选
* @param {Object} options.homeRoute - 自定义 home 路由配置(可选,用于覆盖默认 home
*/
install(Vue, options = {}) {
if (this.installed) return
this.installed = true
const { config = {}, ViewUI, VueRouter, Vuex, createPersistedState } = options
const { config = {}, ViewUI, VueRouter, Vuex, createPersistedState, homeRoute } = options
this.config = config
// 自动注册 ViewUI
@@ -158,6 +159,21 @@ class AdminFramework {
// 如果提供了 VueRouter自动创建 Router
if (VueRouter && !this.router) {
// 获取主路由配置(包含 home
const mainRoute = this.getRoutes({ Main, ParentView, Page404 })
// 如果外部提供了自定义 homeRoute合并到主路由的 children 中
if (homeRoute && mainRoute && mainRoute.children) {
// 查找并替换默认的 home 路由
const homeIndex = mainRoute.children.findIndex(route => route.name === 'home')
if (homeIndex !== -1) {
mainRoute.children[homeIndex] = homeRoute
} else {
// 如果没找到,添加到开头
mainRoute.children.unshift(homeRoute)
}
}
this.router = this.createRouter(VueRouter, {
Main,
ParentView,
@@ -165,11 +181,7 @@ class AdminFramework {
Page401,
Page404,
Page500
}, [], ViewUI)
// 自动添加动态路由
const mainRoutes = this.getRoutes({ Main, ParentView, Page404 })
this.router.addRoutes([mainRoutes])
}, mainRoute ? [mainRoute] : [], ViewUI)
}
}