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 |