b89c8760
wangming
项目初始化
|
1
2
3
4
5
6
|
<template>
<div class="login-container">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on"
label-position="left">
<div class="title-container">
|
93212c7d
yangzhi
配置修改
|
7
|
<h3 class="title">面试考试系统后台</h3>
|
b89c8760
wangming
项目初始化
|
8
9
10
11
12
13
|
</div>
<el-form-item prop="username">
<span class="svg-container">
<svg-icon icon-class="user" />
</span>
|
e011bf15
周超
我先走一步
|
14
|
<el-input ref="username" v-model="loginForm.username" placeholder="用户名" name="username" type="text"
|
b89c8760
wangming
项目初始化
|
15
16
17
18
19
20
21
22
|
tabindex="1" auto-complete="on" />
</el-form-item>
<el-form-item prop="password">
<span class="svg-container">
<svg-icon icon-class="password" />
</span>
<el-input :key="passwordType" ref="password" v-model="loginForm.password" :type="passwordType"
|
e011bf15
周超
我先走一步
|
23
|
placeholder="密码" name="password" tabindex="2" auto-complete="on"
|
b89c8760
wangming
项目初始化
|
24
25
26
27
28
29
30
|
@keyup.enter.native="handleLogin" />
<span class="show-pwd" @click="showPwd">
<svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" />
</span>
</el-form-item>
<el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;"
|
e011bf15
周超
我先走一步
|
31
|
@click.native.prevent="handleLogin">登录</el-button>
|
a7974ab3
周超
111
|
32
|
<!-- <div style="text-align: center;color: #FFF;">技术支持:成都安第斯信息技术有限公司</div> -->
|
b89c8760
wangming
项目初始化
|
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<!-- <div class="tips">
<span style="margin-right:20px;">username: admin</span>
<span> password: any</span>
</div> -->
</el-form>
</div>
</template>
<script>
import {
validUsername
} from '@/utils/validate'
|
6963d762
周超
拉取志哥最新的
|
47
|
// import axios from 'axios'
|
b89c8760
wangming
项目初始化
|
48
49
50
51
52
|
export default {
name: 'Login',
data() {
const validateUsername = (rule, value, callback) => {
if (!validUsername(value)) {
|
a7974ab3
周超
111
|
53
|
callback(new Error('请输入登录的用户名'))
|
b89c8760
wangming
项目初始化
|
54
55
56
57
58
59
|
} else {
callback()
}
}
const validatePassword = (rule, value, callback) => {
if (value.length < 6) {
|
a7974ab3
周超
111
|
60
|
callback(new Error('密码长度最低6位'))
|
b89c8760
wangming
项目初始化
|
61
62
63
64
65
66
|
} else {
callback()
}
}
return {
loginForm: {
|
1de913cf
ren
sdf
|
67
68
|
username: '',
password: ''
|
b89c8760
wangming
项目初始化
|
69
70
71
72
73
|
},
loginRules: {
username: [{
required: true,
trigger: 'blur',
|
1de913cf
ren
sdf
|
74
|
// validator: validateUsername
|
b89c8760
wangming
项目初始化
|
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
}],
password: [{
required: true,
trigger: 'blur',
validator: validatePassword
}]
},
loading: false,
passwordType: 'password',
redirect: undefined
}
},
watch: {
$route: {
|
6963d762
周超
拉取志哥最新的
|
89
|
handler: function (route) {
|
b89c8760
wangming
项目初始化
|
90
|
this.redirect = route.query && route.query.redirect
|
b32564ca
周超
11
|
91
92
|
// if (this.redirect.indexOf('404') != -1)
// this.redirect = this.redirect.replace('404', 'dashboard')
|
b89c8760
wangming
项目初始化
|
93
94
95
96
|
},
immediate: true
}
},
|
6963d762
周超
拉取志哥最新的
|
97
98
|
created() {
},
|
b89c8760
wangming
项目初始化
|
99
100
101
102
103
104
105
106
107
108
109
110
111
|
methods: {
showPwd() {
if (this.passwordType === 'password') {
this.passwordType = ''
} else {
this.passwordType = 'password'
}
this.$nextTick(() => {
this.$refs.password.focus()
})
},
handleLogin() {
this.$refs.loginForm.validate(valid => {
|
b89c8760
wangming
项目初始化
|
112
113
114
115
|
if (valid) {
this.loading = true
this.$store.dispatch('user/login', this.loginForm).then(() => {
this.$router.push({
|
b32564ca
周超
11
|
116
|
path: this.redirect || '/'
|
a7974ab3
周超
111
|
117
|
})
|
b89c8760
wangming
项目初始化
|
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
this.loading = false
}).catch((ret) => {
console.log();
this.loading = false
})
} else {
console.log('error submit!!')
return false
}
})
}
}
}
</script>
<style lang="scss">
/* 修复input 背景不协调 和光标变色 */
/* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */
|
6963d762
周超
拉取志哥最新的
|
136
137
|
$bg: #283443;
$light_gray: #fff;
|
b89c8760
wangming
项目初始化
|
138
|
$cursor: #fff;
|
6963d762
周超
拉取志哥最新的
|
139
|
|
b89c8760
wangming
项目初始化
|
140
141
142
143
144
|
@supports (-webkit-mask: none) and (not (cater-color: $cursor)) {
.login-container .el-input input {
color: $cursor;
}
}
|
6963d762
周超
拉取志哥最新的
|
145
|
|
b89c8760
wangming
项目初始化
|
146
147
148
149
150
151
|
/* reset element-ui css */
.login-container {
.el-input {
display: inline-block;
height: 47px;
width: 85%;
|
6963d762
周超
拉取志哥最新的
|
152
|
|
b89c8760
wangming
项目初始化
|
153
154
155
156
157
158
159
160
161
|
input {
background: transparent;
border: 0px;
-webkit-appearance: none;
border-radius: 0px;
padding: 12px 5px 12px 15px;
color: $light_gray;
height: 47px;
caret-color: $cursor;
|
6963d762
周超
拉取志哥最新的
|
162
|
|
b89c8760
wangming
项目初始化
|
163
164
|
&:-webkit-autofill {
box-shadow: 0 0 0px 1000px $bg inset !important;
|
6963d762
周超
拉取志哥最新的
|
165
|
-webkit-text-fill-color: $cursor !important;
|
b89c8760
wangming
项目初始化
|
166
167
168
|
}
}
}
|
6963d762
周超
拉取志哥最新的
|
169
|
|
b89c8760
wangming
项目初始化
|
170
171
172
173
174
175
176
177
178
179
|
.el-form-item {
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(0, 0, 0, 0.1);
border-radius: 5px;
color: #454545;
}
}
</style>
<style lang="scss" scoped>
|
6963d762
周超
拉取志哥最新的
|
180
181
182
183
|
$bg: #2d3a4b;
$dark_gray: #889aa4;
$light_gray: #eee;
|
b89c8760
wangming
项目初始化
|
184
185
186
187
188
|
.login-container {
min-height: 100%;
width: 100%;
background-color: $bg;
overflow: hidden;
|
6963d762
周超
拉取志哥最新的
|
189
|
|
b89c8760
wangming
项目初始化
|
190
191
192
193
194
195
196
197
|
.login-form {
position: relative;
width: 520px;
max-width: 100%;
padding: 160px 35px 0;
margin: 0 auto;
overflow: hidden;
}
|
6963d762
周超
拉取志哥最新的
|
198
|
|
b89c8760
wangming
项目初始化
|
199
200
201
202
|
.tips {
font-size: 14px;
color: #fff;
margin-bottom: 10px;
|
6963d762
周超
拉取志哥最新的
|
203
|
|
b89c8760
wangming
项目初始化
|
204
205
206
207
208
209
|
span {
&:first-of-type {
margin-right: 16px;
}
}
}
|
6963d762
周超
拉取志哥最新的
|
210
|
|
b89c8760
wangming
项目初始化
|
211
212
213
214
215
216
217
|
.svg-container {
padding: 6px 5px 6px 15px;
color: $dark_gray;
vertical-align: middle;
width: 30px;
display: inline-block;
}
|
6963d762
周超
拉取志哥最新的
|
218
|
|
b89c8760
wangming
项目初始化
|
219
220
|
.title-container {
position: relative;
|
6963d762
周超
拉取志哥最新的
|
221
|
|
b89c8760
wangming
项目初始化
|
222
223
224
225
226
227
228
229
|
.title {
font-size: 26px;
color: $light_gray;
margin: 0px auto 40px auto;
text-align: center;
font-weight: bold;
}
}
|
6963d762
周超
拉取志哥最新的
|
230
|
|
b89c8760
wangming
项目初始化
|
231
232
233
234
235
236
237
238
239
240
|
.show-pwd {
position: absolute;
right: 10px;
top: 7px;
font-size: 16px;
color: $dark_gray;
cursor: pointer;
user-select: none;
}
}
|
6963d762
周超
拉取志哥最新的
|
241
|
</style>
|