优化密码修改界面

This commit is contained in:
季圣华
2022-10-23 12:26:01 +08:00
parent c57fea9c25
commit c4ad9344dc

View File

@@ -7,41 +7,27 @@
@ok="handleOk" @ok="handleOk"
@cancel="handleCancel" @cancel="handleCancel"
cancelText="关闭" cancelText="关闭"
> wrapClassName="ant-modal-cust-warp"
style="top:25%;height: 50%;overflow-y: hidden">
<a-spin :spinning="confirmLoading"> <a-spin :spinning="confirmLoading">
<a-form :form="form"> <a-form :form="form">
<a-form-item label="旧密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="旧密码">
<a-input type="password" placeholder="请输入旧密码" v-decorator="[ 'oldpassword', validatorRules.oldpassword]" /> <a-input type="password" placeholder="请输入旧密码" v-decorator="[ 'oldpassword', validatorRules.oldpassword]" />
</a-form-item> </a-form-item>
<a-form-item label="新密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-form-item <a-input type="password" placeholder="新密码至少6位区分大小写" v-decorator="[ 'password', validatorRules.password]" />
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="新密码">
<a-input type="password" placeholder="请输入新密码" v-decorator="[ 'password', validatorRules.password]" />
</a-form-item> </a-form-item>
<a-form-item label="确认新密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-form-item <a-input type="password" placeholder="请确认新密码" v-decorator="[ 'confirmPassword', validatorRules.confirmPassword]"/>
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="确认新密码">
<a-input type="password" @blur="handleConfirmBlur" placeholder="请确认新密码" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/>
</a-form-item> </a-form-item>
</a-form> </a-form>
</a-spin> </a-spin>
</a-modal> </a-modal>
</template> </template>
<script> <script>
import { putAction } from '@/api/manage' import { putAction } from '@/api/manage'
import md5 from 'md5' import md5 from 'md5'
export default { export default {
name: "UserPassword", name: "UserPassword",
data () { data () {
@@ -57,18 +43,20 @@
}], }],
}, },
password:{ password:{
rules: [{ rules: [
required: true, message: '请输入新密码!', { required: true, message: '请输入新密码!'},
}, { { validator: this.handlePassword }
validator: this.validateToNextPassword, ],
}], validateTrigger: ['change', 'blur'],
validateFirst: true
}, },
confirmpassword:{ confirmPassword:{
rules: [{ rules: [
required: true, message: '请确认新密码!', { required: true, message: '请确认新密码!' },
}, { { validator: this.handleConfirmPassword }
validator: this.compareToFirstPassword, ],
}], validateTrigger: ['change', 'blur'],
validateFirst: true
} }
}, },
confirmDirty:false, confirmDirty:false,
@@ -80,7 +68,6 @@
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 16 }, sm: { span: 16 },
}, },
form:this.$form.createForm(this), form:this.$form.createForm(this),
url: "/user/updatePwd", url: "/user/updatePwd",
userId:"", userId:"",
@@ -90,7 +77,6 @@
show(userId){ show(userId){
if(!userId){ if(!userId){
this.$message.warning("当前系统无登陆用户!"); this.$message.warning("当前系统无登陆用户!");
return
}else{ }else{
this.userId = userId this.userId = userId
this.form.resetFields(); this.form.resetFields();
@@ -104,14 +90,13 @@
this.$emit('close'); this.$emit('close');
this.visible = false; this.visible = false;
this.disableSubmit = false; this.disableSubmit = false;
this.selectedRole = [];
}, },
handleOk () { handleOk () {
const that = this; const that = this;
// 触发表单验证 // 触发表单验证
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
if (!err) { if (!err) {
that.confirmLoading = true; that.confirmLoading = true
values.oldpassword = md5(values.oldpassword) values.oldpassword = md5(values.oldpassword)
values.password = md5(values.password) values.password = md5(values.password)
let params = Object.assign({userId:this.userId},values) let params = Object.assign({userId:this.userId},values)
@@ -119,40 +104,41 @@
putAction(this.url,params).then((res)=>{ putAction(this.url,params).then((res)=>{
if(res.code === 200){ if(res.code === 200){
if(res.data.status === 2 || res.data.status === 3) { if(res.data.status === 2 || res.data.status === 3) {
that.$message.warning(res.data.message); that.$message.warning(res.data.message)
} else { } else {
that.$message.success(res.data.message); that.$message.success(res.data.message)
that.close()
} }
that.close();
}else{ }else{
that.$message.warning(res.data.message); that.$message.warning(res.data.message)
} }
}).finally(() => { }).finally(() => {
that.confirmLoading = false; that.confirmLoading = false
}) })
} }
}) })
}, },
validateToNextPassword (rule, value, callback) { handlePassword(rule, value, callback) {
const form = this.form; let oldpassword = this.form.getFieldValue('oldpassword')
if (value && this.confirmDirty) { if(oldpassword === value) {
form.validateFields(['confirm'], { force: true }) callback(new Error('新密码和旧密码不能相同!'))
} }
callback(); let reg = /^(?=.*[a-z])(?=.*\d).{6,}$/;
}, if (!reg.test(value)) {
compareToFirstPassword (rule, value, callback) { callback(new Error('密码由6位数字小写字母组成!'))
const form = this.form;
if (value && value !== form.getFieldValue('password')) {
callback('两次输入的密码不一样');
} else {
callback()
} }
callback()
}, },
handleConfirmBlur (e) { handleConfirmPassword(rule, value, callback) {
const value = e.target.value let password = this.form.getFieldValue('password')
this.confirmDirty = this.confirmDirty || !!value if (value === undefined) {
callback(new Error('请输入密码!'))
}
if (value && password && value.trim() !== password.trim()) {
callback(new Error('两次密码不一致!'))
}
callback()
} }
} }
} }
</script> </script>