diff --git a/.env.development b/.env.development
index b2a96a4..3d6274a 100644
--- a/.env.development
+++ b/.env.development
@@ -1,5 +1,5 @@
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:46000
-VUE_APP_USER_MODEL=AdminUser
-VUE_APP_USER_MODEL2=BaseAdmin
+VUE_APP_USER_MODEL2=AdminUser
+VUE_APP_USER_MODEL=BaseAdmin
VUE_APP_BEID=1
\ No newline at end of file
diff --git a/src/components/login/loginActions.vue b/src/components/login/loginActions.vue
index ecd196c..8f1f461 100644
--- a/src/components/login/loginActions.vue
+++ b/src/components/login/loginActions.vue
@@ -71,7 +71,12 @@ export default {
getRoutesConfig().then(result => { // 获取路由配置
if (result.data.data != null) {
- const routesConfig = result.data.data
+
+
+
+ const routesConfig = result.data.data;
+
+
this.setRoutesConfig(routesConfig)
loadRoutes([routesConfig])
@@ -79,7 +84,7 @@ export default {
this.$closeOthers(pushTo)
} else {
this.$router.push(pushTo)
- }
+ }
this.$message.success(msg, 3)
}
@@ -104,7 +109,5 @@ export default {
}
-
+
\ No newline at end of file
diff --git a/src/router/Middle/Mes/basic/router.map.js b/src/router/Middle/Mes/basic/router.map.js
index 22b5be6..747da5b 100644
--- a/src/router/Middle/Mes/basic/router.map.js
+++ b/src/router/Middle/Mes/basic/router.map.js
@@ -21,7 +21,7 @@ routerMap['basic']= {
permission: [],
}
};
-
+/*
routerMap['basic_materials']= {
name: '基础档案',
icon: 'idcard',
@@ -47,5 +47,6 @@ routerMap['basic_unit']= {
permission: [],
}
};
+*/
-export default {}
+export default routerMap
diff --git a/src/utils/routerUtil.js b/src/utils/routerUtil.js
index 8911bfc..673e00f 100644
--- a/src/utils/routerUtil.js
+++ b/src/utils/routerUtil.js
@@ -29,7 +29,7 @@ function setAppOptions(options) { // 设置应用配置
*/
function parseRoutes(routesConfig, routerMap) { // 解析路由
let routes = [] // 初始化路由为空数组
-
+
routesConfig.forEach(item => { // 遍历路由配置
// 获取注册在 routerMap 中的 router,初始化 routeCfg
let router = undefined, routeCfg = {} // 初始化路由和路由配置
@@ -69,7 +69,7 @@ function parseRoutes(routesConfig, routerMap) { // 解析路由
}
})
Object.assign(meta, cfgMeta) // 合并路由元信息和路由配置元信息
-
+
const route = {
path: routeCfg.path || router.path || routeCfg.router, // 路由路径
name: routeCfg.name || router.name, // 路由名称
@@ -92,7 +92,7 @@ function parseRoutes(routesConfig, routerMap) { // 解析路由
// 根据权限过滤路由
function filterRoutesConfig(routes, permissions) {
const res = []
-
+
routes.forEach(route => {
const tmp = { ...route }
if (hasPermission(permissions, tmp)) {
@@ -107,7 +107,7 @@ function filterRoutesConfig(routes, permissions) {
// 判断是否有权限
function hasPermission(permissions, route) {
- if (route.meta && route.meta.authority && route.meta.authority.permission) {
+ if (route.meta && route.meta.authority && route.meta.authority.permission) {
return permissions.some(permission => {
return route.meta.authority.permission === '' || route.meta.authority.permission === permission
})
@@ -116,6 +116,50 @@ function hasPermission(permissions, route) {
}
}
+//合并菜单项
+function mergeMenus(routesConfig) {
+ if (!routesConfig) return routesConfig;
+
+ let root = routesConfig[0];
+
+ let routes = [];
+ let groups = ['basic']; //要合并的菜单项
+ let appendedGroups = []; //已经处理的菜单项
+
+ let children = JSON.parse(JSON.stringify(root.children));
+ console.log(children)
+ root.children.forEach(item => {
+
+ if (appendedGroups.filter(a => a == item.router).length) {
+ return;
+ }
+ if (groups.filter(a => a == item.router).length) {
+ let newItem = {
+ authority: item.authority,
+ icon: item.icon,
+ name: item.name,
+ router: item.router,
+ children: []
+ };
+ children.forEach(subitem => {
+ if (subitem.router == item.router) {
+ subitem.children = subitem.children || [];
+ newItem.children = [...newItem.children, ...subitem.children]; //合并子菜单项
+ }
+ });
+ routes.push(newItem);
+ appendedGroups.push(item.router);
+ } else {
+
+ routes.push(item);
+ }
+ });
+
+ root.children = routes;
+ return [root];
+
+}
+
/**
* 加载路由
@@ -137,6 +181,12 @@ function loadRoutes(routesConfig) { // 加载路由
// }
/*************** 兼容 version < v0.6.1 *****************/
+
+ console.log(routesConfig)
+ routesConfig = mergeMenus(routesConfig);
+ if (!routesConfig) {
+ return;
+ }
// 应用配置
const { router, store, i18n } = appOptions
@@ -153,27 +203,24 @@ function loadRoutes(routesConfig) { // 加载路由
// console.log("=====filteredRoutesConfig:", filteredRoutesConfig)
filteredRoutesConfig
// routesConfig = filteredRoutesConfig // 路由配置等于过滤后的路由配置
-
+
// 如果开启了异步路由,则加载异步路由配置
const asyncRoutes = store.state.setting.asyncRoutes // 获取store的setting模块的asyncRoutes
- if (asyncRoutes) { // 如果动态路由存在
- console.log("routesConfig && routesConfig.length > 0", routesConfig.length > 0)
-
+ if (asyncRoutes) { // 如果动态路由存在
+
if (routesConfig && routesConfig.length > 0) { // 如果本地路由配置存在 并且 数量大于0
const routes = parseRoutes(routesConfig, routerMap) // 解析路由
-
+
// 合并路由 生成路由表
const finalRoutes = mergeRoutes(basicOptions.routes, routes)
// 格式化路由
formatRoutes(finalRoutes)
- console.log('最终路由表finalRoutes:', finalRoutes) // 最终路由表
- router.options = { ...router.options, routes: finalRoutes } // 路由配置
- console.log(router.options)
+ router.options = { ...router.options, routes: finalRoutes } // 路由配置
router.matcher = new Router({ ...router.options, routes: [] }).matcher // 重置路由
- router.addRoutes(finalRoutes) // 添加路由
+ router.addRoutes(finalRoutes) // 添加路由
-
- //for (let x of finalRoutes) {
+
+ //for (let x of finalRoutes) {
// router.addRoute(x)
//}
}