From d820ca95e1c5510030d9e80789ec7b41f3c977d8 Mon Sep 17 00:00:00 2001 From: Pan <panfree23@gmail.com> Date: Tue, 16 May 2017 17:31:48 +0800 Subject: [PATCH] refine main.js role logic --- src/main.js | 17 +++++++++++++++-- src/mock/login.js | 1 - src/views/layout/Layout.vue | 20 +------------------- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/main.js b/src/main.js index dc770eb..dd759e8 100644 --- a/src/main.js +++ b/src/main.js @@ -48,7 +48,7 @@ router.beforeEach((to, from, next) => { next({ path: '/' }); } else { if (to.meta && to.meta.role) { // 判æ–å³å°†è¿›å…¥çš„页颿˜¯å¦éœ€è¦æƒé™ - if (store.getters.uid) { // 判æ–当å‰ç”¨æˆ·æ˜¯å¦å·²æ‹‰å–完infoä¿¡æ¯ + if (store.getters.roles.length !== 0) { // 判æ–当å‰ç”¨æˆ·æ˜¯å¦å·²æ‹‰å–完infoä¿¡æ¯ if (hasPermission(store.getters.roles, to.meta.role)) { // åˆ¤æ–æƒé™ next(); // 有æƒé™ } else { @@ -70,7 +70,20 @@ router.beforeEach((to, from, next) => { }); } } else { // 页é¢ä¸éœ€è¦æƒé™ 直接进入 - next(); + console.log(store.getters.roles) + if (store.getters.roles.length !== 0) { + next(); + } else { + store.dispatch('GetInfo').then(() => { + permission.init({ + roles: store.getters.roles, + router: router.options.routes + }); + next(); + }).catch(err => { + console.log(err); + }); + } } } } else { diff --git a/src/mock/login.js b/src/mock/login.js index b3609ef..38e7d50 100644 --- a/src/mock/login.js +++ b/src/mock/login.js @@ -30,7 +30,6 @@ const userMap = { export default { loginByEmail: config => { - console.log(config) const { email } = JSON.parse(config.body); return userMap[email.split('@')[0]]; }, diff --git a/src/views/layout/Layout.vue b/src/views/layout/Layout.vue index 168f8f8..693456c 100644 --- a/src/views/layout/Layout.vue +++ b/src/views/layout/Layout.vue @@ -12,9 +12,7 @@ <script> import { Navbar, Sidebar, AppMain } from 'views/layout'; - import store from 'store'; - import router from 'router'; - import permission from 'store/permission'; + export default { name: 'layout', components: { @@ -26,22 +24,6 @@ sidebar() { return this.$store.state.app.sidebar; } - }, - beforeRouteEnter: (to, from, next) => { - const roles = store.getters.roles; - if (roles.length !== 0) { - next(); - return - } - store.dispatch('GetInfo').then(() => { - permission.init({ - roles: store.getters.roles, - router: router.options.routes - }); - next(); - }).catch(err => { - console.log(err); - }); } } </script> -- 2.21.0