Skip to content

Commit b3067fb

Browse files
committed
fix: register password check level
1 parent 7dc1af0 commit b3067fb

File tree

1 file changed

+39
-20
lines changed

1 file changed

+39
-20
lines changed

src/views/user/Register.vue

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,38 @@
44
<a-form ref="formRegister" :autoFormCreate="(form)=>{this.form = form}" id="formRegister">
55
<a-form-item
66
fieldDecoratorId="email"
7-
:fieldDecoratorOptions="{rules: [{ required: true, message: '请输入邮箱地址' }], validateTrigger: 'blur'}">
7+
:fieldDecoratorOptions="{rules: [{ required: true, type: 'email', message: '请输入邮箱地址' }]}">
88

99
<a-input size="large" type="text" placeholder="邮箱"></a-input>
1010
</a-form-item>
1111

12-
<a-form-item
13-
fieldDecoratorId="password"
14-
:fieldDecoratorOptions="{rules: [{ required: true, message: '至少6位密码,区分大小写' }, { validator: this.handlePasswordLevel }], validateTrigger: ['change', 'blur']}">
15-
<a-popover placement="right" trigger="click" :visible="clicked" @visibleChange="clicked = true">
16-
<template slot="content">
17-
<div :style="{ width: '240px' }">
18-
<div :class="['user-register', passwordLevelClass]">强度:<span>{{ passwordLevelName }}</span></div>
19-
<a-progress :percent="state.percent" :showInfo="false" strokeColor="#FF0000" />
20-
<div style="margin-top: 10px;">
21-
<span>请至少输入 6 个字符。请不要使用容易被猜到的密码。</span>
22-
</div>
12+
<a-popover placement="right" trigger="click" :visible="state.passwordLevelChecked">
13+
<template slot="content">
14+
<div :style="{ width: '240px' }">
15+
<div :class="['user-register', passwordLevelClass]">强度:<span>{{ passwordLevelName }}</span></div>
16+
<a-progress :percent="state.percent" :showInfo="false" :strokeColor=" passwordLevelColor " />
17+
<div style="margin-top: 10px;">
18+
<span>请至少输入 6 个字符。请不要使用容易被猜到的密码。</span>
2319
</div>
24-
</template>
25-
<a-input size="large" type="password" placeholder="至少6位密码,区分大小写"></a-input>
26-
</a-popover>
27-
</a-form-item>
20+
</div>
21+
</template>
22+
<a-form-item
23+
fieldDecoratorId="password"
24+
:fieldDecoratorOptions="{rules: [
25+
{ required: true, message: '至少6位密码,区分大小写'},
26+
{ validator: this.handlePasswordLevel }
27+
]}"
28+
>
29+
<a-input size="large" type="password" @click="state.passwordLevelChecked = true" autocomplete="false" placeholder="至少6位密码,区分大小写"></a-input>
30+
</a-form-item>
31+
</a-popover>
32+
2833

2934
<a-form-item
3035
fieldDecoratorId="password2"
31-
:fieldDecoratorOptions="{rules: [{ required: true, message: '至少6位密码,区分大小写' }, { validator: this.handlePasswordCheck }], validateTrigger: 'blur'}">
36+
:fieldDecoratorOptions="{rules: [{ required: true, message: '至少6位密码,区分大小写' }, { validator: this.handlePasswordCheck }]}">
3237

33-
<a-input size="large" type="password" placeholder="确认密码"></a-input>
38+
<a-input size="large" type="password" autocomplete="false" placeholder="确认密码"></a-input>
3439
</a-form-item>
3540

3641
<a-form-item
@@ -98,6 +103,12 @@
98103
2: 'warning',
99104
3: 'success'
100105
}
106+
const levelColor = {
107+
0: '#ff0000',
108+
1: '#ff0000',
109+
2: '#ff7e05',
110+
3: '#52c41a',
111+
}
101112
export default {
102113
name: "Register",
103114
components: {
@@ -106,12 +117,13 @@
106117
return {
107118
form: null,
108119
109-
clicked: false,
110120
state: {
111121
time: 60,
112122
smsSendBtn: false,
113123
passwordLevel: 0,
114-
percent: 0,
124+
passwordLevelChecked: false,
125+
percent: 10,
126+
progressColor: '#FF0000'
115127
},
116128
registerBtn: false
117129
}
@@ -122,11 +134,15 @@
122134
},
123135
passwordLevelName () {
124136
return levelNames[this.state.passwordLevel]
137+
},
138+
passwordLevelColor () {
139+
return levelColor[this.state.passwordLevel]
125140
}
126141
},
127142
methods: {
128143
129144
handlePasswordLevel (rule, value, callback) {
145+
130146
let level = 0
131147
132148
// 判断这个字符串中有没有数字
@@ -150,6 +166,9 @@
150166
}
151167
callback()
152168
} else {
169+
if (level == 0) {
170+
this.state.percent = 10
171+
}
153172
callback(new Error('密码强度不够'))
154173
}
155174
},

0 commit comments

Comments
 (0)