Commit 5e9df6f5 authored by shangtx's avatar shangtx

fix: 修改密码bug

parent a88d2aa1
...@@ -4,57 +4,69 @@ ...@@ -4,57 +4,69 @@
v-model="visible" v-model="visible"
@ok="handleOk" @ok="handleOk"
:maskClosable="false" :maskClosable="false"
class="cust-modal"> class="cust-modal"
>
<a-form :form="form" ref="form"> <a-form :form="form" ref="form">
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-form-item v-bind="formItemLayout" label='现密码'> <a-form-item v-bind="formItemLayout" label="现密码">
<a-input <a-input
v-decorator="[ v-decorator="[
'password', 'oldPwd',
{ {
rules: [{ rules: [
required: true, message: '请输入密码!', {
}, { required: true,
validator: this.validateToNextPassword, message: '请输入密码!'
}], },
} {
]" validator: this.validateToNextPassword
type='password' }
]
}
]"
type="password"
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-form-item v-bind="formItemLayout" label='新密码'> <a-form-item v-bind="formItemLayout" label="新密码">
<a-input <a-input
v-decorator="[ v-decorator="[
'newPassword', 'newPwd',
{ {
rules: [{ rules: [
required: true, message: '请输入新密码!', {
}, { required: true,
validator: this.validateToNextPassword, message: '请输入新密码!'
}], },
} {
]" validator: this.validateToNextPassword
type='password' }
]
}
]"
type="password"
/> />
</a-form-item> </a-form-item>
<a-form-item v-bind="formItemLayout" label='确认密码' > <a-form-item v-bind="formItemLayout" label="确认密码">
<a-input <a-input
v-decorator="[ v-decorator="[
'confirmNewPassword', 'confirmNewPassword',
{ {
rules: [{ rules: [
required: true, message: '请确认密码!', {
}, { required: true,
validator: compareToFirstPassword, message: '请确认密码!'
}], },
{
validator: compareToFirstPassword
}
]
} }
]" ]"
type='password' type="password"
@blur="handleConfirmBlur" @blur="handleConfirmBlur"
/> />
</a-form-item> </a-form-item>
...@@ -62,62 +74,61 @@ ...@@ -62,62 +74,61 @@
</a-modal> </a-modal>
</template> </template>
<script> <script>
import { editPwd } from '@/api/system/sysUserApi'
import { editPwd } from "@/api/system/sysUserApi"; export default {
beforeCreate() {
export default { this.form = this.$form.createForm(this)
beforeCreate () { },
this.form = this.$form.createForm(this) data() {
}, return {
data() { visible: false,
return { confirmDirty: false,
visible: false, formItemLayout: {
confirmDirty: false, labelCol: {
formItemLayout: { sm: { span: 7 }
labelCol: {
sm: { span: 7 },
},
wrapperCol: {
sm: { span: 14 },
},
}, },
wrapperCol: {
sm: { span: 14 }
}
} }
}
},
methods: {
show() {
this.visible = true
}, },
methods: { handleOk() {
show() { this.form.validateFieldsAndScroll((err, values) => {
this.visible = true; if (!err) {
}, editPwd(values).then((resp) => {
handleOk() { if (resp && resp.code == SYS_CONST.REQUEST.SUCCEED) {
this.form.validateFieldsAndScroll((err, values) => { this.$emit('relogin', this.optType, values)
if (!err) { this.visible = false
editPwd(values).then(resp => { }
if (resp && resp.code == SYS_CONST.REQUEST.SUCCEED) { })
this.$emit('relogin', this.optType, values);
this.visible = false;
}
})
}
})
},
validateToNextPassword (rule, value, callback) {
const form = this.form
if (value && this.confirmDirty) {
form.validateFields(['confirmNewPassword'], { force: true })
} }
})
},
validateToNextPassword(rule, value, callback) {
const form = this.form
if (value && this.confirmDirty) {
form.validateFields(['confirmNewPassword'], { force: true })
}
callback()
},
compareToFirstPassword(rule, value, callback) {
const form = this.form
if (value && value !== form.getFieldValue('newPwd')) {
callback('确认两次密码是否一致!')
} else {
callback() callback()
}, }
compareToFirstPassword (rule, value, callback) { },
const form = this.form handleConfirmBlur(e) {
if (value && value !== form.getFieldValue('newPassword')) { const value = e.target.value
callback('确认两次密码是否一致!') this.confirmDirty = this.confirmDirty || !!value
} else {
callback()
}
},
handleConfirmBlur (e) {
const value = e.target.value
this.confirmDirty = this.confirmDirty || !!value
},
} }
} }
}
</script> </script>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment