Commit 411f96a5af8a69c3f68a27ce62f4ecb2fc5f2724
1 parent
13061512
登录状态管理
Showing
4 changed files
with
68 additions
and
13 deletions
webintroduce/src/components/VHeader.vue
| @@ -20,7 +20,8 @@ export default { | @@ -20,7 +20,8 @@ export default { | ||
| 20 | navLinks: [ | 20 | navLinks: [ |
| 21 | {name:'首页',linkPath:'/home'}, | 21 | {name:'首页',linkPath:'/home'}, |
| 22 | {name:'解决方案',linkPath:'/solution'}, | 22 | {name:'解决方案',linkPath:'/solution'}, |
| 23 | - {name:'登录',linkPath:'/login'} | 23 | + {name:'登录',linkPath:'/login'}, |
| 24 | + {name:'企业介绍',linkPath:'/enterprise'} | ||
| 24 | ] | 25 | ] |
| 25 | } | 26 | } |
| 26 | }, | 27 | }, |
webintroduce/src/main.js
| @@ -3,14 +3,33 @@ | @@ -3,14 +3,33 @@ | ||
| 3 | import Vue from 'vue' | 3 | import Vue from 'vue' |
| 4 | import App from './App' | 4 | import App from './App' |
| 5 | import router from './router' | 5 | import router from './router' |
| 6 | - | 6 | +import Cookies from 'js-cookie' |
| 7 | require ('./assets/css/reset.css') | 7 | require ('./assets/css/reset.css') |
| 8 | Vue.config.productionTip = false | 8 | Vue.config.productionTip = false |
| 9 | 9 | ||
| 10 | router.beforeEach((to, from, next) =>{ | 10 | router.beforeEach((to, from, next) =>{ |
| 11 | - console.log(to) | ||
| 12 | - document.title = to.meta.title | ||
| 13 | - next() | 11 | + |
| 12 | + if(to.matched.some(record => record.meta.requiresAuth)){ | ||
| 13 | + if(Cookies.get('username')){ | ||
| 14 | + document.title = to.meta.title | ||
| 15 | + next() | ||
| 16 | + }else{ | ||
| 17 | + next({ | ||
| 18 | + path:'/login', | ||
| 19 | + query: { redirect: to.fullPath } | ||
| 20 | + }) | ||
| 21 | + document.title = '登录' | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + | ||
| 25 | + }else { | ||
| 26 | + document.title = to.meta.title | ||
| 27 | + next() | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + // console.log(to) | ||
| 31 | + // | ||
| 32 | + // next() | ||
| 14 | }) | 33 | }) |
| 15 | 34 | ||
| 16 | /* eslint-disable no-new */ | 35 | /* eslint-disable no-new */ |
webintroduce/src/router/index.js
| @@ -19,7 +19,8 @@ export default new Router({ | @@ -19,7 +19,8 @@ export default new Router({ | ||
| 19 | name: 'home', | 19 | name: 'home', |
| 20 | component: home, | 20 | component: home, |
| 21 | meta: { | 21 | meta: { |
| 22 | - title: '首页' | 22 | + title: '首页', |
| 23 | + requiresAuth: false | ||
| 23 | } | 24 | } |
| 24 | }, | 25 | }, |
| 25 | { | 26 | { |
| @@ -27,23 +28,37 @@ export default new Router({ | @@ -27,23 +28,37 @@ export default new Router({ | ||
| 27 | name: 'solution', | 28 | name: 'solution', |
| 28 | component: solution, | 29 | component: solution, |
| 29 | meta: { | 30 | meta: { |
| 30 | - title: '解决方案' | 31 | + title: '解决方案', |
| 32 | + requiresAuth: false | ||
| 31 | } | 33 | } |
| 32 | }, | 34 | }, |
| 33 | { | 35 | { |
| 34 | - path: '/enterprise/:id', | 36 | + path: '/enterprise', |
| 35 | name: 'enterprise', | 37 | name: 'enterprise', |
| 36 | component: enterprise, | 38 | component: enterprise, |
| 37 | meta: { | 39 | meta: { |
| 38 | - title: '企业' | ||
| 39 | - } | 40 | + title: '企业', |
| 41 | + requiresAuth: true | ||
| 42 | + }, | ||
| 43 | + child:[ | ||
| 44 | + { | ||
| 45 | + path: '/enterprise/:id', | ||
| 46 | + name: 'enterprise', | ||
| 47 | + component: enterprise, | ||
| 48 | + meta: { | ||
| 49 | + title: '企业', | ||
| 50 | + requiresAuth: true | ||
| 51 | + }, | ||
| 52 | + } | ||
| 53 | + ] | ||
| 40 | }, | 54 | }, |
| 41 | { | 55 | { |
| 42 | path: '/login', | 56 | path: '/login', |
| 43 | name: 'login', | 57 | name: 'login', |
| 44 | component: login, | 58 | component: login, |
| 45 | meta: { | 59 | meta: { |
| 46 | - title: '登录' | 60 | + title: '登录', |
| 61 | + requiresAuth: false | ||
| 47 | } | 62 | } |
| 48 | } | 63 | } |
| 49 | ] | 64 | ] |
webintroduce/src/views/login.vue
| 1 | <template> | 1 | <template> |
| 2 | - <div>登录页面没有公共的头部底部</div> | 2 | + <div>登录页面没有公共的头部底部 |
| 3 | + {{username}} | ||
| 4 | + <input type="text" v-model="username"> | ||
| 5 | + <input type="button" name="" value="登录" @click="loginBtn"> | ||
| 6 | + </div> | ||
| 3 | </template> | 7 | </template> |
| 4 | 8 | ||
| 5 | <script> | 9 | <script> |
| 10 | +import Cookies from 'js-cookie' | ||
| 6 | export default { | 11 | export default { |
| 7 | - name: 'login' | 12 | + name: 'login', |
| 13 | + data() { | ||
| 14 | + return { | ||
| 15 | + username: '' | ||
| 16 | + } | ||
| 17 | + }, | ||
| 18 | + methods: { | ||
| 19 | + loginBtn() { | ||
| 20 | + Cookies.set('username',this.username) | ||
| 21 | + console.log(this.$route) | ||
| 22 | + let redirect = decodeURIComponent(this.$route.query.redirect || '/'); | ||
| 23 | + this.$router.push({//你需要接受路由的参数再跳转 | ||
| 24 | + path: redirect | ||
| 25 | + }); | ||
| 26 | + } | ||
| 27 | + } | ||
| 8 | } | 28 | } |
| 9 | </script> | 29 | </script> |
| 10 | 30 |