11<template >
22 <div class =" main user-layout-register" >
33 <h3 ><span >注册</span ></h3 >
4- <a-form ref =" formRegister" :autoFormCreate =" (form)=>{this.form = form}" id =" formRegister" >
5- <a-form-item
6- fieldDecoratorId =" email"
7- :fieldDecoratorOptions =" {rules: [{ required: true, type: 'email', message: '请输入邮箱地址' }], validateTrigger: ['change', 'blur']}" >
8-
9- <a-input size =" large" type =" text" placeholder =" 邮箱" ></a-input >
4+ <a-form ref =" formRegister" :form =" form" id =" formRegister" >
5+ <a-form-item >
6+ <a-input
7+ size =" large"
8+ type =" text"
9+ placeholder =" 邮箱"
10+ v-decorator =" ['email', {rules: [{ required: true, type: 'email', message: '请输入邮箱地址' }], validateTrigger: ['change', 'blur']}]"
11+ ></a-input >
1012 </a-form-item >
1113
1214 <a-popover placement =" rightTop" trigger =" click" :visible =" state.passwordLevelChecked" >
1921 </div >
2022 </div >
2123 </template >
22- <a-form-item
23- fieldDecoratorId =" password"
24- :fieldDecoratorOptions =" {rules: [{ required: true, message: '至少6位密码,区分大小写'}, { validator: this.handlePasswordLevel }], validateTrigger: ['change', 'blur']}" >
25- <a-input size =" large" type =" password" @click =" handlePasswordInputClick" autocomplete =" false" placeholder =" 至少6位密码,区分大小写" ></a-input >
24+ <a-form-item >
25+ <a-input
26+ size =" large"
27+ type =" password"
28+ @click =" handlePasswordInputClick"
29+ autocomplete =" false"
30+ placeholder =" 至少6位密码,区分大小写"
31+ v-decorator =" ['password', {rules: [{ required: true, message: '至少6位密码,区分大小写'}, { validator: this.handlePasswordLevel }], validateTrigger: ['change', 'blur']}]"
32+ ></a-input >
2633 </a-form-item >
2734 </a-popover >
2835
29- <a-form-item
30- fieldDecoratorId =" password2"
31- :fieldDecoratorOptions =" {rules: [{ required: true, message: '至少6位密码,区分大小写' }, { validator: this.handlePasswordCheck }], validateTrigger: ['change', 'blur']}" >
32-
33- <a-input size =" large" type =" password" autocomplete =" false" placeholder =" 确认密码" ></a-input >
36+ <a-form-item >
37+ <a-input
38+ size =" large"
39+ type =" password"
40+ autocomplete =" false"
41+ placeholder =" 确认密码"
42+ v-decorator =" ['password2', {rules: [{ required: true, message: '至少6位密码,区分大小写' }, { validator: this.handlePasswordCheck }], validateTrigger: ['change', 'blur']}]"
43+ ></a-input >
3444 </a-form-item >
3545
36- <a-form-item
37- fieldDecoratorId =" mobile"
38- :fieldDecoratorOptions =" {rules: [{ required: true, message: '请输入正确的手机号', pattern: /^1[3456789]\d{9}$/ }, { validator: this.handlePhoneCheck } ], validateTrigger: ['change', 'blur'] }" >
39- <a-input size =" large" placeholder =" 11 位手机号" >
46+ <a-form-item >
47+ <a-input size =" large" placeholder =" 11 位手机号" v-decorator =" ['mobile', {rules: [{ required: true, message: '请输入正确的手机号', pattern: /^1[3456789]\d{9}$/ }, { validator: this.handlePhoneCheck } ], validateTrigger: ['change', 'blur'] }]" >
4048 <a-select slot =" addonBefore" size =" large" defaultValue =" +86" >
4149 <a-select-option value =" +86" >+86</a-select-option >
4250 <a-select-option value =" +87" >+87</a-select-option >
5361
5462 <a-row :gutter =" 16" >
5563 <a-col class =" gutter-row" :span =" 16" >
56- <a-form-item
57- fieldDecoratorId =" captcha"
58- :fieldDecoratorOptions =" {rules: [{ required: true, message: '请输入验证码' }], validateTrigger: 'blur'}" >
59- <a-input size =" large" type =" text" placeholder =" 验证码" >
64+ <a-form-item >
65+ <a-input size =" large" type =" text" placeholder =" 验证码" v-decorator =" ['captcha', {rules: [{ required: true, message: '请输入验证码' }], validateTrigger: 'blur'}]" >
6066 <a-icon slot =" prefix" type =" mail" :style =" { color: 'rgba(0,0,0,.25)' }" />
6167 </a-input >
6268 </a-form-item >
@@ -117,7 +123,7 @@ export default {
117123 mixins: [mixinDevice],
118124 data () {
119125 return {
120- form: null ,
126+ form: this . $form . createForm ( this ) ,
121127
122128 state: {
123129 time: 60 ,
@@ -143,7 +149,7 @@ export default {
143149 },
144150 methods: {
145151
146- handlePasswordLevel (rule , value , callback ) {
152+ handlePasswordLevel (rule , value , callback ) {
147153 let level = 0
148154
149155 // 判断这个字符串中有没有数字
@@ -202,44 +208,45 @@ export default {
202208 },
203209
204210 handleSubmit () {
205- this .form .validateFields ((err , values ) => {
211+ const { form: { validateFields }, $router } = this
212+ validateFields ((err , values ) => {
206213 if (! err) {
207- this . $router .push ({ name: ' registerResult' , params: { ... values } })
214+ $router .push ({ name: ' registerResult' , params: { ... values } })
208215 }
209216 })
210217 },
211218
212219 getCaptcha (e ) {
213220 e .preventDefault ()
214- const that = this
221+ const { form : { validateFields }, state , $message , $notification } = this
215222
216- this . form . validateFields ([' mobile' ], { force: true },
223+ validateFields ([' mobile' ], { force: true },
217224 (err , values ) => {
218225 if (! err) {
219- this . state .smsSendBtn = true
226+ state .smsSendBtn = true
220227
221228 const interval = window .setInterval (() => {
222- if (that . state .time -- <= 0 ) {
223- that . state .time = 60
224- that . state .smsSendBtn = false
229+ if (state .time -- <= 0 ) {
230+ state .time = 60
231+ state .smsSendBtn = false
225232 window .clearInterval (interval)
226233 }
227234 }, 1000 )
228235
229- const hide = this . $message .loading (' 验证码发送中..' , 0 )
236+ const hide = $message .loading (' 验证码发送中..' , 0 )
230237
231238 getSmsCaptcha ({ mobile: values .mobile }).then (res => {
232239 setTimeout (hide, 2500 )
233- this . $notification [' success' ]({
240+ $notification[' success' ]({
234241 message: ' 提示' ,
235242 description: ' 验证码获取成功,您的验证码为:' + res .result .captcha ,
236243 duration: 8
237244 })
238245 }).catch (err => {
239246 setTimeout (hide, 1 )
240247 clearInterval (interval)
241- that . state .time = 60
242- that . state .smsSendBtn = false
248+ state .time = 60
249+ state .smsSendBtn = false
243250 this .requestFailed (err)
244251 })
245252 }
@@ -257,7 +264,7 @@ export default {
257264 },
258265 watch: {
259266 ' state.passwordLevel' (val) {
260- console .log (val)
267+ console .log (val)
261268 }
262269 }
263270}
@@ -308,4 +315,4 @@ export default {
308315 line-height : 40px ;
309316 }
310317 }
311- </style >
318+ </style >
0 commit comments