From d888a81a6c7334c3b4beab7d440e3f0ba72a5ff6 Mon Sep 17 00:00:00 2001 From: wangfs <15029758498@163.com> Date: Tue, 16 Jul 2019 12:59:49 +0800 Subject: [PATCH] 提交权限控制 --- src/permission.js | 81 +++++++++++++++++++++++++++++++++++++++++++-------------------------------------- src/router/index.js | 18 +++++++++--------- src/views/login/index.vue | 5 +++++ src/views/service.vue | 16 ++++++++-------- 4 files changed, 65 insertions(+), 55 deletions(-) diff --git a/src/permission.js b/src/permission.js index fa1ea19..a641b71 100644 --- a/src/permission.js +++ b/src/permission.js @@ -1,59 +1,64 @@ import router from './router' import store from './store' -import { Message } from 'element-ui' +import {Message} from 'element-ui' import NProgress from 'nprogress' // progress bar import 'nprogress/nprogress.css' // progress bar style -import { getToken } from '@/utils/auth' // get token from cookie +import {getToken} from '@/utils/auth' // get token from cookie import getPageTitle from '@/utils/get-page-title' -NProgress.configure({ showSpinner: false }) // NProgress Configuration +NProgress.configure({showSpinner: false}) // NProgress Configuration const whiteList = ['/login'] // no redirect whitelist -router.beforeEach(async(to, from, next) => { +router.beforeEach(async (to, from, next) => { + debugger // start progress bar NProgress.start() + if (to.path.indexOf("service") == -1) { + next() + NProgress.done() + } else { + // set page title + document.title = getPageTitle(to.meta.title) - // set page title - document.title = getPageTitle(to.meta.title) - - // determine whether the user has logged in - const hasToken = getToken() + // determine whether the user has logged in + const hasToken = getToken() - if (hasToken) { - if (to.path === '/login') { - // if is logged in, redirect to the home page - next({ path: '/' }) - NProgress.done() - } else { - const hasGetUserInfo = store.getters.name - if (hasGetUserInfo) { - next() + if (hasToken) { + if (to.path === '/login') { + // if is logged in, redirect to the home page + next({path: '/'}) + NProgress.done() } else { - try { - // get user info - await store.dispatch('user/getInfo') - + const hasGetUserInfo = store.getters.name + if (hasGetUserInfo) { next() - } catch (error) { - // remove token and go to login page to re-login - await store.dispatch('user/resetToken') - Message.error(error || 'Has Error') - next(`/login?redirect=${to.path}`) - NProgress.done() + } else { + try { + // get user info + await store.dispatch('user/getInfo') + + next() + } catch (error) { + // remove token and go to login page to re-login + await store.dispatch('user/resetToken') + Message.error(error || 'Has Error') + next(`/login?redirect=${to.path}`) + NProgress.done() + } } } - } - } else { - /* has no token*/ - - if (whiteList.indexOf(to.path) !== -1) { - // in the free login whitelist, go directly - next() } else { - // other pages that do not have permission to access are redirected to the login page. - next(`/login?redirect=${to.path}`) - NProgress.done() + /* has no token*/ + + if (whiteList.indexOf(to.path) !== -1) { + // in the free login whitelist, go directly + next() + } else { + // other pages that do not have permission to access are redirected to the login page. + next(`/login?redirect=${to.path}`) + NProgress.done() + } } } }) diff --git a/src/router/index.js b/src/router/index.js index 1f62eb3..1b1af4a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -55,7 +55,7 @@ export const constantRoutes = [ }, { path: '/service', - redirect:'/dashboard', + redirect:'/service/dashboard', component: () => import('@/views/service'), meta: { title: '停车服务' @@ -63,47 +63,47 @@ export const constantRoutes = [ }, children:[ { - path: '/dashboard', + path: '/service/dashboard', component: () => import('@/views/dashboard/index'), meta: { title: '服务首页', icon: 'dashboard' } }, { - path: '/account', + path: '/service/account', component: () => import('@/views/account/index'), meta: { title: '我的账户',icon: 'money' } }, { - path: '/cardticket', + path: '/service/cardticket', component: () => import('@/views/cardticket/index'), meta: { title: '我的卡券', icon: 'card' } }, { - path: '/order', + path: '/service/order', component: () => import('@/views/order/index'), meta: { title: '我的订单', icon: 'form' } }, { - path: '/payback', + path: '/service/payback', component: () => import('@/views/payback/index'), meta: { title: '欠费补缴', icon: 'nested' } }, { - path: '/mycar', + path: '/service/mycar', component: () => import('@/views/mycar/index'), meta: { title: '我的车辆', icon: 'car' } }, { - path: '/information', + path: '/service/information', component: () => import('@/views/information/index'), meta: { title: '个人资料' ,icon: 'people'} }, { - path: '/myevaluate', + path: '/service/myevaluate', component: () => import('@/views/myevaluate/index'), meta: { title: '我的评价',icon: 'skill' } } diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 0b62a75..06cceb7 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -115,6 +115,11 @@ export default { type: 'success', message: '验证码发送成功!' }); + }else{ + this.$message({ + type: 'error', + message: data.msg + }); } }); //this.validateBtn(); diff --git a/src/views/service.vue b/src/views/service.vue index b7d3b5f..c3ad888 100644 --- a/src/views/service.vue +++ b/src/views/service.vue @@ -12,7 +12,7 @@ background-color="#545c64" text-color="#fff" active-text-color="#409eff" router> - + 服务首页 @@ -21,18 +21,18 @@ 我的钱包 - 我的账户 - 我的卡券 + 我的账户 + 我的卡券 - + 我的订单 - + 欠费补缴 - + 我的车辆 @@ -41,8 +41,8 @@ 个人中心 - 个人资料 - 我的评价 + 个人资料 + 我的评价 -- libgit2 0.21.4