Browse Source

保存登录状态

master
taylor 8 years ago
parent
commit
f2cdbdeb37
  1. 2
      src/App.vue
  2. 4
      src/main.js
  3. 2
      src/mockdata/user.js
  4. 27
      src/pages/Home.vue
  5. 6
      src/pages/Login.vue

2
src/App.vue

@ -20,7 +20,7 @@
// } // }
watch: { watch: {
'$route'(to, from) {// '$route'(to, from) {//
let user = JSON.parse(localStorage.getItem('user'));
let user = JSON.parse(sessionStorage.getItem('user'));
if (!user) { if (!user) {
this.$router.replace('/login') this.$router.replace('/login')
} }

4
src/main.js

@ -86,10 +86,8 @@ const router = new VueRouter({
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
NProgress.start(); NProgress.start();
let user = JSON.parse(localStorage.getItem('user'));
console.log(user); console.log(to);
let user = JSON.parse(sessionStorage.getItem('user'));
if (!user && to.path != '/login') { if (!user && to.path != '/login') {
console.log('lgout');
next({ path: '/login' }) next({ path: '/login' })
} }
next() next()

2
src/mockdata/user.js

@ -4,7 +4,7 @@ const LoginUsers = [
id: 1, id: 1,
username: 'admin', username: 'admin',
password: '123456', password: '123456',
avatar: '',
avatar: 'https://raw.githubusercontent.com/taylorchen709/markdown-images/master/vueadmin/user.png',
name: '张某某' name: '张某某'
} }
]; ];

27
src/pages/Home.vue

@ -7,7 +7,7 @@
</el-col> </el-col>
<el-col :span="4" class="rightbar"> <el-col :span="4" class="rightbar">
<el-dropdown trigger="click"> <el-dropdown trigger="click">
<span class="el-dropdown-link" style="color:#c0ccda;cursor: pointer;"><img src="../assets/user.png" class="head"> 张某某
<span class="el-dropdown-link" style="color:#c0ccda;cursor: pointer;"><img :src="this.sysUserAvatar" class="head"> {{sysUserName}}
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item>我的消息</el-dropdown-item> <el-dropdown-item>我的消息</el-dropdown-item>
@ -82,6 +82,8 @@
currentPath: '/table', currentPath: '/table',
currentPathName: 'Table', currentPathName: 'Table',
currentPathNameParent: '导航一', currentPathNameParent: '导航一',
sysUserName: '',
sysUserAvatar: '',
form: { form: {
name: '', name: '',
region: '', region: '',
@ -94,13 +96,13 @@
} }
} }
}, },
// watch: {
// '$route'(to, from) {//
// this.currentPath = to.path;
// this.currentPathName = to.name;
// this.currentPathNameParent = to.matched[0].name;
// }
// },
watch: {
'$route'(to, from) {//
this.currentPath = to.path;
this.currentPathName = to.name;
this.currentPathNameParent = to.matched[0].name;
}
},
methods: { methods: {
onSubmit() { onSubmit() {
console.log('submit!'); console.log('submit!');
@ -119,7 +121,7 @@
this.$confirm('确认退出吗?', '提示', { this.$confirm('确认退出吗?', '提示', {
//type: 'warning' //type: 'warning'
}).then(() => { }).then(() => {
localStorage.removeItem('user');
sessionStorage.removeItem('user');
_this.$router.replace('/login'); _this.$router.replace('/login');
}).catch(() => { }).catch(() => {
@ -132,6 +134,13 @@
this.currentPath = this.$route.path; this.currentPath = this.$route.path;
this.currentPathName = this.$route.name; this.currentPathName = this.$route.name;
this.currentPathNameParent = this.$route.matched[0].name; this.currentPathNameParent = this.$route.matched[0].name;
var user = sessionStorage.getItem('user');
if (user) {
user = JSON.parse(user);
this.sysUserName = user.name || '';
this.sysUserAvatar = user.avatar || '';
}
} }
} }
</script> </script>

6
src/pages/Login.vue

@ -62,13 +62,9 @@
type: 'error' type: 'error'
}); });
} else { } else {
localStorage.setItem('user', JSON.stringify(user));
if (this.$route.query.redirect) {
this.$router.push({ path: this.$route.query.redirect });
} else {
sessionStorage.setItem('user', JSON.stringify(user));
this.$router.push({ path: '/table' }); this.$router.push({ path: '/table' });
} }
}
}); });
} else { } else {
console.log('error submit!!'); console.log('error submit!!');

Loading…
Cancel
Save