templeate:
<a-modal
width="30%"
title="修改密码"
wrapClassName="wrapClassName"
:visible="visible"
:confirm-loading="confirmLoading"
@ok="handleOk"
:footer="null"
@cancel="handleCancel"
>
<a-form-model
v-if="visible"
:model="form"
ref="form"
:rules="rules"
:label-col="{ span: 6 }"
:wrapper-col="{ span: 12 }"
>
<a-form-model-item prop="oldpassword" :labelCol="{ span: 6 }" :wrapperCol="{ span: 14 }" label="旧密码">
<a-input v-model="form.oldpassword" type="password" autocomplete="off" />
</a-form-model-item>
<a-form-model-item
has-feedback
prop="newpassword"
:validateStatus="validateStatus"
:labelCol="{ span: 6 }"
:wrapperCol="{ span: 14 }"
label="新密码"
>
<a-input v-model="form.newpassword" />
</a-form-model-item>
<a-form-model-item
has-feedback
prop="renewpassword"
:validateStatus="validateStatus"
:labelCol="{ span: 6 }"
:wrapperCol="{ span: 14 }"
label="再次确认新密码"
>
<a-input v-model="form.renewpassword" />
</a-form-model-item>
</a-form-model>
<div class="surebtn">
<div>
<a-button class="suerbtn-l" @click="handleCancel">取消</a-button>
<a-button @click="sure">确认</a-button>
</div>
</div>
</a-modal>
data中:return上面data内:
const validatePass = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入密码'))
} else {
if (this.form.newpassword !== '') {
this.$refs.form.validateField('renewpassword')
}
callback()
}
}
const validatepasssure = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入新密码'))
} else if (value !== this.form.newpassword) {
callback(new Error('两次输入新密码不一致!'))
} else {
callback()
}
}
data中配置:
rules: {
oldpassword: [{ required: true, message: '请输入旧密码', trigger: 'change' }],
newpassword: [{ required: true, validator: validatePass, trigger: 'change' }],
renewpassword: [{ required: true, trigger: 'change', validator: validatepasssure }],
},