cxxm/ruoyi-ui/src/views/system/user/profile/resetPwd.vue

100 lines
3.5 KiB
Vue
Raw Normal View History

2019-10-08 09:14:38 +08:00
<template>
<el-form ref="form" :model="user" :rules="rules" label-width="80px">
2025-04-20 08:02:06 +08:00
<div>
<h3>密码组成要求</h3>
<ul style="color: green">
<li>最小长度不少于 8 个字符</li>
<li>字符种类密码必须包含以下至少三种不同类型字符
<ul>
<li>大写英文字母A-Z</li>
<li>小写英文字母a-z</li>
<li>数字0-9</li>
<li>特殊符号!@#$%^&*()-_=+[]{}|;:,.<>/?</li>
</ul>
</li>
</ul>
<h3>禁止使用的内容</h3>
<ul style="color: red">
<li>禁止使用与用户账号姓名工号手机号邮箱等明显相关的信息作为密码</li>
<li>禁止使用常见弱口令123456passwordadminabc123qwerty </li>
<li>不允许使用重复字符或简单模式aaaaaa111111abcabc </li>
</ul>
</div>
2019-10-08 09:14:38 +08:00
<el-form-item label="旧密码" prop="oldPassword">
<el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password/>
2019-10-08 09:14:38 +08:00
</el-form-item>
<el-form-item label="新密码" prop="newPassword">
<el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" show-password/>
2019-10-08 09:14:38 +08:00
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
2022-07-12 18:04:49 +08:00
<el-input v-model="user.confirmPassword" placeholder="请确认新密码" type="password" show-password/>
2019-10-08 09:14:38 +08:00
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" @click="submit">保存</el-button>
<el-button type="danger" size="mini" @click="close">关闭</el-button>
</el-form-item>
</el-form>
</template>
<script>
2025-04-20 08:02:06 +08:00
import {updateUserPwd, checkWeakPwd} from "@/api/system/user";
2019-10-08 09:14:38 +08:00
export default {
data() {
const equalToPassword = (rule, value, callback) => {
if (this.user.newPassword !== value) {
callback(new Error("两次输入的密码不一致"));
} else {
callback();
}
};
2025-04-20 08:02:06 +08:00
const validatePassword = (rule, value, callback) => {
checkWeakPwd(value).then(response => {
if (response.code === 200) {
callback();
} else {
callback(new Error(response.message));
}
})
};
2019-10-08 09:14:38 +08:00
return {
user: {
oldPassword: undefined,
newPassword: undefined,
confirmPassword: undefined
},
// 表单校验
rules: {
oldPassword: [
2025-04-20 08:02:06 +08:00
{required: true, message: "旧密码不能为空", trigger: "blur"}
2019-10-08 09:14:38 +08:00
],
newPassword: [
2025-04-20 08:02:06 +08:00
{required: true, message: "新密码不能为空", trigger: "blur"},
{min: 8, max: 20, message: "长度在 8 到 20 个字符", trigger: "blur"},
{validator: validatePassword, trigger: "blur"},
2019-10-08 09:14:38 +08:00
],
confirmPassword: [
2025-04-20 08:02:06 +08:00
{required: true, message: "确认密码不能为空", trigger: "blur"},
{required: true, validator: equalToPassword, trigger: "blur"},
2019-10-08 09:14:38 +08:00
]
}
};
},
methods: {
submit() {
this.$refs["form"].validate(valid => {
if (valid) {
2021-11-22 18:06:44 +08:00
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
this.$modal.msgSuccess("修改成功");
2025-04-20 08:02:06 +08:00
this.$tab.closePage();
2021-11-22 18:06:44 +08:00
});
2019-10-08 09:14:38 +08:00
}
});
},
close() {
2021-11-19 14:53:40 +08:00
this.$tab.closePage();
2019-10-08 09:14:38 +08:00
}
}
};
</script>