123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import Vue from 'vue'
- import Router from 'vue-router'
- import routerData from './router'
- import store from './../store/index'
-
- Vue.use(Router)
-
- const flatten = (parent, data) => {
- console.log(parent)
- return data.reduce((acc, { path, name, component, title, children }) => {
- const pth = [parent, path].join('/').replace('//', '/')
- const item = { path: pth, name, component, title, children: [] }
-
- if (children && children.length) {
- return acc.concat(item, flatten(pth, children))
- }
-
- return acc.concat(item)
- }, [])
- }
-
- // route 数据, 展平二级路由
- const routes = routerData.reduce((acc, r) => {
- const { children, ...rest } = r
-
- if (children && children.length) {
- return acc.concat({ ...rest, children: flatten([], children) })
- }
-
- return acc.concat(r)
- }, [])
-
- // console.log(routes)
-
- const router = new Router({
- routes,
- linkActiveClass: 'active',
- })
-
- router.beforeEach((to, from, next) => {
- store.commit('updateBread', { routerData, name: to.name })
- next()
- })
-
- export default router
|