a72ae217
王富生
第一次提交
|
1
2
3
4
5
6
7
8
9
|
<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">
<h3 class="title">登录</h3>
</div>
|
89d744de
Andy
add 登录手机号 交互
|
10
|
<el-form-item prop="phone">
|
a72ae217
王富生
第一次提交
|
11
|
<span class="svg-container">
|
89d744de
Andy
add 登录手机号 交互
|
12
|
<svg-icon icon-class="phone" style="width:18px;height: 18px"/>
|
a72ae217
王富生
第一次提交
|
13
14
|
</span>
<el-input
|
89d744de
Andy
add 登录手机号 交互
|
15
16
17
18
|
ref="phone"
v-model="loginForm.phone"
placeholder="手机号"
name="phone"
|
a72ae217
王富生
第一次提交
|
19
20
|
type="text"
tabindex="1"
|
89d744de
Andy
add 登录手机号 交互
|
21
|
onkeyup = "value=value.replace(/[^\d]/g,'')"
|
a72ae217
王富生
第一次提交
|
22
23
24
25
26
27
|
auto-complete="on"
/>
</el-form-item>
<el-form-item prop="password">
<span class="svg-container">
|
89d744de
Andy
add 登录手机号 交互
|
28
|
<svg-icon icon-class="yzm" style="width:18px;height: 18px"/>
|
a72ae217
王富生
第一次提交
|
29
30
|
</span>
<el-input
|
a72ae217
王富生
第一次提交
|
31
32
|
ref="password"
v-model="loginForm.password"
|
89d744de
Andy
add 登录手机号 交互
|
33
34
|
type="text"
placeholder="验证码"
|
a72ae217
王富生
第一次提交
|
35
36
|
name="password"
tabindex="2"
|
89d744de
Andy
add 登录手机号 交互
|
37
|
style="width: 140px;"
|
a72ae217
王富生
第一次提交
|
38
|
auto-complete="on"
|
89d744de
Andy
add 登录手机号 交互
|
39
|
onkeyup = "value=value.replace(/[^\d]/g,'')"
|
a72ae217
王富生
第一次提交
|
40
41
|
@keyup.enter.native="handleLogin"
/>
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
42
|
<el-button type="primary" @click="getVerifyCode" :disabled="isDisable" style="float:right;margin-top:6px;margin-right:10px;">{{btnTitle}}</el-button>
|
a72ae217
王富生
第一次提交
|
43
44
45
46
47
48
49
50
51
52
53
|
</el-form-item>
<el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;"
@click.native.prevent="handleLogin">登录
</el-button>
</el-form>
</div>
</template>
<script>
import {validUsername} from '@/utils/validate'
|
9804b54b
王富生
提交登陆
|
54
|
import {sendValidatorCode} from '@/api/user.js'
|
a72ae217
王富生
第一次提交
|
55
56
57
58
|
export default {
name: 'Login',
data() {
|
89d744de
Andy
add 登录手机号 交互
|
59
|
//判断输入的手机号是否合法
|
a72ae217
王富生
第一次提交
|
60
|
const validateUsername = (rule, value, callback) => {
|
89d744de
Andy
add 登录手机号 交互
|
61
62
63
64
65
66
67
|
console.log(value)
if (!value) {
callback(new Error('请输入手机号'))
} else if(!/^1[345678]\d{9}$/.test(value)) {
callback(new Error('请输入正确手机号'))
}else
{
|
a72ae217
王富生
第一次提交
|
68
69
70
71
|
callback()
}
}
const validatePassword = (rule, value, callback) => {
|
89d744de
Andy
add 登录手机号 交互
|
72
73
|
if (!value) {
callback(new Error('请输入验证码'))
|
a72ae217
王富生
第一次提交
|
74
75
76
77
78
79
|
} else {
callback()
}
}
return {
loginForm: {
|
89d744de
Andy
add 登录手机号 交互
|
80
81
|
phone: '',
password: ''
|
a72ae217
王富生
第一次提交
|
82
83
|
},
loginRules: {
|
89d744de
Andy
add 登录手机号 交互
|
84
|
phone: [{ required: true, trigger: 'blur', validator: validateUsername }],
|
a72ae217
王富生
第一次提交
|
85
86
87
|
password: [{ required: true, trigger: 'blur', validator: validatePassword }]
},
loading: false,
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
88
|
isDisable: false,
|
89d744de
Andy
add 登录手机号 交互
|
89
|
btnTitle: '发送验证码',
|
a72ae217
王富生
第一次提交
|
90
91
92
93
94
95
96
97
98
99
100
101
|
redirect: undefined
}
},
watch: {
$route: {
handler: function (route) {
this.redirect = route.query && route.query.redirect
},
immediate: true
}
},
methods: {
|
89d744de
Andy
add 登录手机号 交互
|
102
|
getVerifyCode(){
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
103
|
this.isDisable = true;
|
9804b54b
王富生
提交登陆
|
104
|
let phone = this.loginForm.phone;
|
89d744de
Andy
add 登录手机号 交互
|
105
|
if (!this.loginForm.phone) {
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
106
|
this.isDisable = false;
|
7df6e77e
王富生
登陆验证码提交
|
107
108
109
110
|
this.$message({
type: 'error',
message: '请输入正确的手机号!'
});
|
89d744de
Andy
add 登录手机号 交互
|
111
|
} else if(!/^1[345678]\d{9}$/.test(this.loginForm.phone)) {
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
112
|
this.isDisable = false;
|
7df6e77e
王富生
登陆验证码提交
|
113
114
115
116
|
this.$message({
type: 'error',
message: '请输入正确的手机号!'
});
|
a72ae217
王富生
第一次提交
|
117
|
}
|
89d744de
Andy
add 登录手机号 交互
|
118
119
|
//获取验证码
else {
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
120
|
|
9804b54b
王富生
提交登陆
|
121
|
sendValidatorCode(phone).then(response =>{
|
7df6e77e
王富生
登陆验证码提交
|
122
|
let data = response;
|
ea291b39
王富生
提交登陆
|
123
|
if(data.code=='8888'){
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
124
125
|
console.log(111);
this.validateBtn();
|
9804b54b
王富生
提交登陆
|
126
127
128
129
|
this.$message({
type: 'success',
message: '验证码发送成功!'
});
|
d888a81a
王富生
提交权限控制
|
130
|
}else{
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
131
|
this.isDisable = false;
|
d888a81a
王富生
提交权限控制
|
132
133
134
135
|
this.$message({
type: 'error',
message: data.msg
});
|
9804b54b
王富生
提交登陆
|
136
137
|
}
});
|
89d744de
Andy
add 登录手机号 交互
|
138
139
140
141
|
}
},
validateBtn(){
//倒计时
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
142
143
144
145
146
147
148
149
150
151
152
153
154
|
let that = this, time = 60;
let sendTimer = setInterval(function(){
that.isDisable = true;
time--;
that.btnTitle = time + '秒后重试';
if(time <=0){
that.isDisable = false;
clearInterval(sendTimer);
that.btnTitle = "获取验证码";
}
},1000)
/*
|
89d744de
Andy
add 登录手机号 交互
|
155
156
157
158
|
let time = 60;
let timer = setInterval(() => {
if(time == 0) {
clearInterval(timer);
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
159
160
|
that.disabled = false;
that.btnTitle = "获取验证码";
|
89d744de
Andy
add 登录手机号 交互
|
161
|
} else {
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
162
163
|
that.btnTitle =time + '秒后重试';
that.disabled = true;
|
89d744de
Andy
add 登录手机号 交互
|
164
165
|
time--
}
|
8957e288
Andy
停车服务登录 重复发送验证码 bug修复
|
166
|
},1000)*/
|
a72ae217
王富生
第一次提交
|
167
168
169
|
},
handleLogin() {
this.$refs.loginForm.validate(valid => {
|
a72ae217
王富生
第一次提交
|
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
if (valid) {
this.loading = true
this.$store.dispatch('user/login', this.loginForm).then(() => {
this.$router.push({ path: this.redirect || '/' })
this.loading = false
}).catch(() => {
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 */
$bg: #283443;
$light_gray: #fff;
$cursor: #fff;
@supports (-webkit-mask: none) and (not (cater-color: $cursor)) {
.login-container .el-input input {
color: $cursor;
}
}
/* reset element-ui css */
.login-container {
.el-input {
display: inline-block;
height: 47px;
width: 85%;
|
4140a1b0
Andy
add 官网移植
|
208
|
float: left;
|
a72ae217
王富生
第一次提交
|
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
|
input {
background: transparent;
border: 0px;
-webkit-appearance: none;
border-radius: 0px;
padding: 12px 5px 12px 15px;
color: $light_gray;
height: 47px;
caret-color: $cursor;
&:-webkit-autofill {
box-shadow: 0 0 0px 1000px $bg inset !important;
-webkit-text-fill-color: $cursor !important;
}
}
}
.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>
$bg: #2d3a4b;
$dark_gray: #889aa4;
$light_gray: #eee;
.login-container {
|
76f08d4e
Andy
add header
|
242
|
/*min-height: 100%;*/
|
a72ae217
王富生
第一次提交
|
243
|
width: 100%;
|
99634e99
Andy
首页 banner 更换icon ...
|
244
|
background: url("../../assets/home/hs_bannerico.jpg") no-repeat;
|
a72ae217
王富生
第一次提交
|
245
246
|
background-size: 100% 100%;
overflow: hidden;
|
99634e99
Andy
首页 banner 更换icon ...
|
247
|
position: relative;
|
a72ae217
王富生
第一次提交
|
248
249
250
251
252
253
254
|
.login-form {
position: absolute;
width: 400px;
max-width: 100%;
/*padding: 160px 35px 0;*/
/*margin: 0 auto;*/
|
99634e99
Andy
首页 banner 更换icon ...
|
255
|
top: 50%;
|
a72ae217
王富生
第一次提交
|
256
|
left: 50%;
|
dfc9b132
Andy
首页add 地图缩放
|
257
|
margin-left: -200px;
|
99634e99
Andy
首页 banner 更换icon ...
|
258
|
margin-top: -155px;
|
a72ae217
王富生
第一次提交
|
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
|
overflow: hidden;
background: rgba(26, 29, 41, .6);
}
.tips {
font-size: 14px;
color: #fff;
margin-bottom: 10px;
span {
&:first-of-type {
margin-right: 16px;
}
}
}
.svg-container {
padding: 6px 5px 6px 15px;
color: $dark_gray;
vertical-align: middle;
width: 30px;
display: inline-block;
|
4140a1b0
Andy
add 官网移植
|
281
|
float: left;
|
a72ae217
王富生
第一次提交
|
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
|
}
.title-container {
position: relative;
.title {
font-size: 26px;
color: $light_gray;
margin: 15px auto 40px auto;
text-align: center;
font-weight: bold;
}
}
.show-pwd {
position: absolute;
right: 10px;
top: 7px;
font-size: 16px;
color: $dark_gray;
cursor: pointer;
user-select: none;
}
}
.login-container .el-form-item {
margin-bottom: 25px;
background-color: #333;
color: #FFF;
border-radius: 0;
}
.el-button {
border-radius: 0;
}
</style>
|