|
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