就是一个简单的修改密码功能,修改一下接口,调用自己的加密方法加密,修改成功给提示跳转登录页,(如果要做弹窗包一层简单的弹窗就好了,还不用配置路由更爽) 标签模块
<template>
<el-form class="user-account-key" ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="原密码" prop="password">
<el-input type="password" placeholder="请输入原密码" v-model="form.password"></el-input>
</el-form-item>
<el-form-item label="新密码" prop="newPassword">
<el-input type="password" placeholder="请设置新密码" v-model="form.newPassword"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="newPassword2">
<el-input type="password" placeholder="请确认新密码" v-model="form.newPassword2"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit('form')">保存</el-button>
<el-button @click="$refs['form'].resetFields()">重置</el-button>
</el-form-item>
</el-form>
</template>
业务代码模块
<script>
import { updatePassword } from '@/api/system/user' //此处是接口文件可以根据自己需要更改
export default {
data () {
//此处即表单发送之前验证
let validateNewPassword = (rule, value, callback) => {
if (value === this.form.password) {
callback(new Error('新密码不能与原密码相同!'))
} else {
callback()
}
}
let validateNewPassword2 = (rule, value, callback) => {
if (value !== this.form.newPassword) {
callback(new Error('与新密码不一致!'))
} else {
callback()
}
}
return {
form: {},
rules: {
password: [
{ required: true, message: '请输入原密码', trigger: 'blur' }
],
newPassword: [
{ required: true, message: '请设置新密码', trigger: 'blur' },
{ validator: validateNewPassword, trigger: 'blur' }
],
newPassword2: [
{ required: true, message: '请确认新密码', trigger: 'blur' },
{ validator: validateNewPassword2, trigger: 'blur' }
]
}
}
},
methods: {
onSubmit (formName) {
this.$refs[formName].validate(valid => {
if (valid) {
console.log("修改");
let { newPass, oldPass } = this.form
UserApi.changePassword({ newPass:newPass && encrypt(newPass), oldPass:oldPass && encrypt(oldPass) })
.then((res) => {
console.log(res.success,"73");
this.$message.success('密码已修改')
this.$router.replace("/login");
})
} else {
this.$message.error('请正确填写表单')
return false
}
})
},
},
}
</script>