| | |
| | | import preventReClick from '@/directives/directive' |
| | | import Treeselect from '@riophae/vue-treeselect' |
| | | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| | | |
| | | Vue.component('treeselect', Treeselect) |
| | | |
| | | Vue.use(preventReClick) |
| | |
| | | return |
| | | } |
| | | await this.initRoutes() |
| | | }, |
| | | async topMenuCurrent () { |
| | | if (this.topMenuCurrent == null) { |
| | | return |
| | | } |
| | | await this.chagneRoutes() |
| | | } |
| | | }, |
| | | methods: { |
| | | ...mapMutations(['switchCollapseMenu', 'setHomePage', 'setTopMenuCurrent', 'setTopMenuCurrent']), |
| | | ...mapMutations(['switchCollapseMenu', 'setCurrentIndex', 'setHomePage', 'setTopMenuCurrent', 'setTopMenuCurrent','cleartagsview']), |
| | | // 初始化本地配置 |
| | | initLocalConfig () { |
| | | // 菜单状态配置 |
| | |
| | | }) |
| | | storeTopMenus.push.apply(storeTopMenus, topList) |
| | | var topCurrent = null |
| | | var tlist =[] |
| | | topList.forEach(item => { |
| | | if (item.linkType === 0 && topCurrent == null) { |
| | | topCurrent = item |
| | | if (item.linkType === 0 ) { |
| | | if (topCurrent == null) { |
| | | topCurrent = item |
| | | } |
| | | tlist.push(...item.children) |
| | | } |
| | | }) |
| | | this.setTopMenuCurrent(topCurrent) |
| | | if (this.$route.query && this.$route.query.menuparams) { |
| | | let menu = topList.filter(item => item.params === this.$route.query.menuparams) |
| | | this.setTopMenuCurrent(menu[0]) |
| | | this.setCurrentIndex(topList.findIndex(obj => obj.params === this.$route.query.menuparams)) |
| | | } else { |
| | | this.setTopMenuCurrent(topCurrent) |
| | | this.setCurrentIndex(0) |
| | | } |
| | | // console.log(topList) |
| | | // var menus = [] |
| | | // topList.forEach(item => { |
| | |
| | | console.log('menus', this.menuData.list) |
| | | storeMenus.push.apply(storeMenus, this.menuData.list) |
| | | // 添加路由 |
| | | this.__addRouters(storeMenus) |
| | | this.__addRouters(tlist) |
| | | // 404 |
| | | router.addRoute({ |
| | | path: '*', |
| | |
| | | redirect: this.homePage.url |
| | | }) |
| | | // 路由加载完成后,如果访问的是/,跳转至动态识别的首页 |
| | | if (this.$route.path === '/') { |
| | | if (this.$route.query && this.$route.query.menuparams) { |
| | | this.$router.push(topList.filter(item => item.params === this.$route.query.menuparams)[0].homeUrl) |
| | | } else if (this.$route.path === '/') { |
| | | this.$router.push(this.homePage.url) |
| | | } |
| | | }) |
| | |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | async chagneRoutes () { |
| | | // 重置菜单 |
| | | this.cleartagsview('/index') |
| | | console.log('menus', this.menuData.list) |
| | | // 添加路由 |
| | | // this.__addRouters(this.menuData.list) |
| | | if(this.topMenuCurrent.homeUrl){ |
| | | await this.$router.push({path: this.topMenuCurrent.homeUrl, query: {}}) |
| | | } |
| | | }, |
| | | // 新建路由 |
| | | __addRouters (routes, parents = []) { |
| | | if (routes == null || routes.length === 0) { |