|
4 | 4 | <a-form ref="formRegister" :autoFormCreate="(form)=>{this.form = form}" id="formRegister">
|
5 | 5 | <a-form-item
|
6 | 6 | fieldDecoratorId="email"
|
7 |
| - :fieldDecoratorOptions="{rules: [{ required: true, message: '请输入邮箱地址' }], validateTrigger: 'blur'}"> |
| 7 | + :fieldDecoratorOptions="{rules: [{ required: true, type: 'email', message: '请输入邮箱地址' }]}"> |
8 | 8 |
|
9 | 9 | <a-input size="large" type="text" placeholder="邮箱"></a-input>
|
10 | 10 | </a-form-item>
|
11 | 11 |
|
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> |
23 | 19 | </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 | + |
28 | 33 |
|
29 | 34 | <a-form-item
|
30 | 35 | fieldDecoratorId="password2"
|
31 |
| - :fieldDecoratorOptions="{rules: [{ required: true, message: '至少6位密码,区分大小写' }, { validator: this.handlePasswordCheck }], validateTrigger: 'blur'}"> |
| 36 | + :fieldDecoratorOptions="{rules: [{ required: true, message: '至少6位密码,区分大小写' }, { validator: this.handlePasswordCheck }]}"> |
32 | 37 |
|
33 |
| - <a-input size="large" type="password" placeholder="确认密码"></a-input> |
| 38 | + <a-input size="large" type="password" autocomplete="false" placeholder="确认密码"></a-input> |
34 | 39 | </a-form-item>
|
35 | 40 |
|
36 | 41 | <a-form-item
|
|
98 | 103 | 2: 'warning',
|
99 | 104 | 3: 'success'
|
100 | 105 | }
|
| 106 | + const levelColor = { |
| 107 | + 0: '#ff0000', |
| 108 | + 1: '#ff0000', |
| 109 | + 2: '#ff7e05', |
| 110 | + 3: '#52c41a', |
| 111 | + } |
101 | 112 | export default {
|
102 | 113 | name: "Register",
|
103 | 114 | components: {
|
|
106 | 117 | return {
|
107 | 118 | form: null,
|
108 | 119 |
|
109 |
| - clicked: false, |
110 | 120 | state: {
|
111 | 121 | time: 60,
|
112 | 122 | smsSendBtn: false,
|
113 | 123 | passwordLevel: 0,
|
114 |
| - percent: 0, |
| 124 | + passwordLevelChecked: false, |
| 125 | + percent: 10, |
| 126 | + progressColor: '#FF0000' |
115 | 127 | },
|
116 | 128 | registerBtn: false
|
117 | 129 | }
|
|
122 | 134 | },
|
123 | 135 | passwordLevelName () {
|
124 | 136 | return levelNames[this.state.passwordLevel]
|
| 137 | + }, |
| 138 | + passwordLevelColor () { |
| 139 | + return levelColor[this.state.passwordLevel] |
125 | 140 | }
|
126 | 141 | },
|
127 | 142 | methods: {
|
128 | 143 |
|
129 | 144 | handlePasswordLevel (rule, value, callback) {
|
| 145 | +
|
130 | 146 | let level = 0
|
131 | 147 |
|
132 | 148 | // 判断这个字符串中有没有数字
|
|
150 | 166 | }
|
151 | 167 | callback()
|
152 | 168 | } else {
|
| 169 | + if (level == 0) { |
| 170 | + this.state.percent = 10 |
| 171 | + } |
153 | 172 | callback(new Error('密码强度不够'))
|
154 | 173 | }
|
155 | 174 | },
|
|
0 commit comments