From 397971378357db417763bd388c25cdeeaed5d33c Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Fri, 17 Apr 2026 14:47:43 +0800
Subject: [PATCH] 用户密码支持自定义配置规则

---
 ruoyi-ui/src/views/system/user/profile/resetPwd.vue |   39 ++++++++++++++++++++-------------------
 1 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue b/ruoyi-ui/src/views/system/user/profile/resetPwd.vue
index 4cb9d17..369e451 100644
--- a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue
+++ b/ruoyi-ui/src/views/system/user/profile/resetPwd.vue
@@ -1,9 +1,9 @@
 <template>
-  <el-form ref="form" :model="user" :rules="rules" label-width="80px">
+  <el-form ref="form" :model="user" :rules="formRules" label-width="80px">
     <el-form-item label="旧密码" prop="oldPassword">
       <el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password/>
     </el-form-item>
-    <el-form-item label="新密码" prop="newPassword">
+    <el-form-item label="新密码" prop="newPassword" :rules="infoPwdValidator">
       <el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" show-password/>
     </el-form-item>
     <el-form-item label="确认密码" prop="confirmPassword">
@@ -18,35 +18,36 @@
 
 <script>
 import { updateUserPwd } from "@/api/system/user"
+import passwordRule from "@/utils/passwordRule"
 
 export default {
+  mixins: [passwordRule],
   data() {
-    const equalToPassword = (rule, value, callback) => {
-      if (this.user.newPassword !== value) {
-        callback(new Error("两次输入的密码不一致"))
-      } else {
-        callback()
-      }
-    }
     return {
       user: {
         oldPassword: undefined,
         newPassword: undefined,
         confirmPassword: undefined
-      },
-      // 表单校验
-      rules: {
+      }
+    }
+  },
+  computed: {
+    formRules() {
+      return {
         oldPassword: [
           { required: true, message: "旧密码不能为空", trigger: "blur" }
         ],
-        newPassword: [
-          { required: true, message: "新密码不能为空", trigger: "blur" },
-          { min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" },
-          { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }
-        ],
         confirmPassword: [
           { required: true, message: "确认密码不能为空", trigger: "blur" },
-          { required: true, validator: equalToPassword, trigger: "blur" }
+          {
+            validator: (rule, value, callback) => {
+              if (this.user.newPassword !== value) {
+                callback(new Error("两次输入的密码不一致"))
+              } else {
+                callback()
+              }
+            }, trigger: "blur"
+          }
         ]
       }
     }
@@ -55,7 +56,7 @@
     submit() {
       this.$refs["form"].validate(valid => {
         if (valid) {
-          updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
+          updateUserPwd(this.user.oldPassword, this.user.newPassword).then(() => {
             this.$modal.msgSuccess("修改成功")
           })
         }

--
Gitblit v1.9.3