Skip to content

Commit f85e99f

Browse files
committed
登录接口联调通过
1 parent 09ecc2f commit f85e99f

File tree

8 files changed

+128
-10
lines changed

8 files changed

+128
-10
lines changed

src/api/login.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,11 @@ export function login(data) {
77
data
88
})
99
}
10+
11+
export function getUserInfo(params) {
12+
return request({
13+
url: '/user/info',
14+
method: 'get',
15+
params
16+
})
17+
}

src/assets/img/logo-icon.png

14.6 KB
Loading

src/assets/img/logo.png

11.1 KB
Loading

src/components/UserAvatar/index.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
<script>
1515
import Avatar from '../../assets/img/avatar.png'
16+
import { removeToken } from '../../utils/cookie'
1617
1718
export default {
1819
name: 'UserAvatar',
@@ -23,6 +24,9 @@ export default {
2324
},
2425
methods: {
2526
handleCommand(command) {
27+
if (command === 'userCenter') {
28+
this.$router.push({ path: '/user-center' })
29+
}
2630
if (command === 'loginOut') {
2731
this.loginOut()
2832
}
@@ -33,6 +37,8 @@ export default {
3337
cancelButtonText: '取消',
3438
type: 'warning'
3539
}).then(() => {
40+
removeToken()
41+
location.reload()
3642
})
3743
}
3844
}

src/layout/index.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import HeaderBar from './components/HeaderBar/index'
2828
import SideMenu from './components/SideMenu/index'
2929
import TagsNav from './components/TagsView/index'
3030
import MainView from './components/MainView/index'
31+
import Logo from '../assets/img/logo.png'
32+
import LogoIcon from '../assets/img/logo-icon.png'
3133
3234
const RESIZE_WIDTH = 1440
3335
@@ -38,9 +40,9 @@ export default {
3840
...mapGetters('app', ['collapsed']),
3941
imgSrc() {
4042
if (this.collapsed) {
41-
return 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/logo-icon.png'
43+
return LogoIcon
4244
}
43-
return 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/logo.png'
45+
return Logo
4446
}
4547
},
4648
created() {

src/router/index.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,21 @@ export const constantRoutes = [
6060
title: '文档',
6161
icon: 'vue-dsn-icon-wendang'
6262
}
63+
},
64+
{
65+
path: '/',
66+
name: 'Layout',
67+
component: Layout,
68+
redirect: '/user-center',
69+
hidden: true,
70+
children: [{
71+
path: 'user-center',
72+
name: 'UserCenter',
73+
component: () => import('../views/UserCenter'),
74+
meta: {
75+
title: '个人中心'
76+
}
77+
}]
6378
}
6479
]
6580

src/views/Login.vue

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
<template>
22
<div class="login-wrapper" :style="'background-image:url('+ Background +')'">
33
<div class="form-box">
4-
<h3 class="form-title">登录Vue-Admin-Design账号</h3>
4+
<div class="form-title">
5+
<img src="../assets/img/logo.png" alt="icon">
6+
<p>账 号 登 录</p>
7+
</div>
58
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-width="0px" class="login-form">
69
<el-form-item prop="username">
710
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="请输入账号" prefix-icon="el-icon-user" />
@@ -25,6 +28,7 @@
2528

2629
<script>
2730
import { login } from '../api/login'
31+
import { setToken } from '../utils/cookie'
2832
import Background from '../assets/img/login-background.jpg'
2933
3034
export default {
@@ -41,7 +45,16 @@ export default {
4145
username: [{ required: true, trigger: 'blur', message: '用户名不能为空' }],
4246
password: [{ required: true, trigger: 'blur', message: '密码不能为空' }]
4347
},
44-
loading: false
48+
loading: false,
49+
redirect: undefined
50+
}
51+
},
52+
watch: {
53+
$route: {
54+
handler: function(route) {
55+
this.redirect = route.query && route.query.redirect
56+
},
57+
immediate: true
4558
}
4659
},
4760
methods: {
@@ -55,7 +68,8 @@ export default {
5568
this.loading = true
5669
login(data).then(res => {
5770
this.loading = false
58-
console.log(res)
71+
setToken(res.token)
72+
this.$router.push({ path: this.redirect || '/' })
5973
}).catch(() => {
6074
this.loading = false
6175
})
@@ -76,7 +90,7 @@ export default {
7690
background-size: cover;
7791
.form-box {
7892
width: 320px;
79-
padding: 30px 30px 20px;
93+
padding: 15px 30px 20px;
8094
background: #fff;
8195
border-radius: 4px;
8296
box-shadow: 0 15px 30px 0 rgba(0, 0, 1, .1);
@@ -85,6 +99,7 @@ export default {
8599
text-align: center;
86100
color: #707070;
87101
font-size: 18px;
102+
letter-spacing: 2px;
88103
}
89104
}
90105
}

src/views/UserCenter.vue

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,87 @@
11
<template>
2-
<div class="user-center-wrapper">
3-
个人中心
2+
<div class="user-center-wrapper clear-fix">
3+
<el-card shadow="always" :body-style="{padding: '50px'}">
4+
<div class="user-avatar">
5+
<img src="../assets/img/avatar.png" alt="avatar">
6+
</div>
7+
<ul class="user-info">
8+
<li>
9+
<label>用户名:</label>
10+
<span>{{ userInfo.username }}</span>
11+
</li>
12+
<li>
13+
<label>角色:</label>
14+
<span>{{ userInfo.roles }}</span>
15+
</li>
16+
<li>
17+
<label>昵称:</label>
18+
<span>{{ userInfo.nickname }}</span>
19+
</li>
20+
<li>
21+
<label>电话号码:</label>
22+
<span>{{ userInfo.phone }}</span>
23+
</li>
24+
<li>
25+
<label>邮箱:</label>
26+
<span>{{ userInfo.email }}</span>
27+
</li>
28+
<li>
29+
<label>创建时间:</label>
30+
<span>{{ userInfo.createtime }}</span>
31+
</li>
32+
<li>
33+
<label>更新时间:</label>
34+
<span>{{ userInfo.updatetime }}</span>
35+
</li>
36+
</ul>
37+
</el-card>
438
</div>
539
</template>
640

741
<script>
42+
import { getUserInfo } from '../api/login'
43+
844
export default {
9-
name: 'UserCenter'
45+
name: 'UserCenter',
46+
data() {
47+
return {
48+
userInfo: {}
49+
}
50+
},
51+
created() {
52+
getUserInfo().then(res => {
53+
this.userInfo = res
54+
})
55+
}
1056
}
1157
</script>
1258

1359
<style lang="less">
14-
.user-center-wrapper {}
60+
.user-center-wrapper {
61+
.user-avatar {
62+
float: left;
63+
width: 150px;
64+
height: 150px;
65+
}
66+
.user-info {
67+
float: left;
68+
width: 800px;
69+
margin-left: 50px;
70+
margin-bottom: 50px;
71+
li {
72+
height: 34px;
73+
line-height: 34px;
74+
label,
75+
span {
76+
display: inline-block;
77+
vertical-align: middle;
78+
}
79+
label {
80+
width: 80px;
81+
margin-right: 12px;
82+
text-align: right;
83+
}
84+
}
85+
}
86+
}
1587
</style>

0 commit comments

Comments
 (0)