From 9f16b5c553b479ea12fe368a7ecc748872ea8b98 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 12 六月 2025 11:11:27 +0800
Subject: [PATCH] 修改配置文件

---
 web_src/src/components/dialog/changePassword.vue |   41 +++++++++++++++++++++++++++++++++--------
 1 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/web_src/src/components/dialog/changePassword.vue b/web_src/src/components/dialog/changePassword.vue
old mode 100644
new mode 100755
index 5842df0..5ab2d2f
--- a/web_src/src/components/dialog/changePassword.vue
+++ b/web_src/src/components/dialog/changePassword.vue
@@ -11,6 +11,9 @@
     >
       <div id="shared" style="margin-right: 20px;">
         <el-form ref="passwordForm" :rules="rules" status-icon label-width="80px">
+              <el-form-item label="鏃у瘑鐮�" prop="oldPassword" >
+                <el-input v-model="oldPassword" autocomplete="off"></el-input>
+              </el-form-item>
               <el-form-item label="鏂板瘑鐮�" prop="newPassword" >
                 <el-input v-model="newPassword" autocomplete="off"></el-input>
               </el-form-item>
@@ -31,15 +34,24 @@
 </template>
 
 <script>
+import crypto from 'crypto'
+import userService from "../service/UserService";
 export default {
   name: "changePassword",
   props: {},
   computed: {},
   created() {},
   data() {
-    let validatePass = (rule, value, callback) => {
+    let validatePass0 = (rule, value, callback) => {
       if (value === '') {
-        callback(new Error('璇疯緭鍏ュ瘑鐮�'));
+        callback(new Error('璇疯緭鍏ユ棫瀵嗙爜'));
+      } else {
+        callback();
+      }
+    };
+    let validatePass1 = (rule, value, callback) => {
+      if (value === '') {
+        callback(new Error('璇疯緭鍏ユ柊瀵嗙爜'));
       } else {
         if (this.confirmPassword !== '') {
           this.$refs.passwordForm.validateField('confirmPassword');
@@ -57,12 +69,17 @@
       }
     };
     return {
+      oldPassword: null,
       newPassword: null,
       confirmPassword: null,
       showDialog: false,
       isLoging: false,
       rules: {
-        newPassword: [{ required: true, validator: validatePass, trigger: "blur" }],
+        oldPassword: [{ required: true, validator: validatePass0, trigger: "blur" }],
+        newPassword: [{ required: true, validator: validatePass1, trigger: "blur" }, {
+            pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,20}$/,
+            message: "瀵嗙爜闀垮害鍦�8-20浣嶄箣闂�,鐢卞瓧姣�+鏁板瓧+鐗规畩瀛楃缁勬垚",
+          },],
         confirmPassword: [{ required: true, validator: validatePass2, trigger: "blur" }],
       },
     };
@@ -76,22 +93,29 @@
         method: 'post',
         url:"/api/user/changePassword",
         params: {
+          oldPassword: crypto.createHash('md5').update(this.oldPassword, "utf8").digest('hex'),
           password: this.newPassword
         }
       }).then((res)=> {
-        if (res.data === "success"){
+        if (res.data.code === 0) {
           this.$message({
             showClose: true,
-            message: '淇敼鎴愬姛锛岃閲嶆柊鐧婚檰',
+            message: '淇敼鎴愬姛锛岃閲嶆柊鐧诲綍',
             type: 'success'
           });
           this.showDialog = false;
           setTimeout(()=>{
             // 鍒犻櫎cookie锛屽洖鍒扮櫥褰曢〉闈�
-            this.$cookies.remove("session");
+            userService.clearUserInfo();
             this.$router.push('/login');
             this.sseSource.close();
           },800)
+        }else {
+          this.$message({
+            showClose: true,
+            message: '淇敼瀵嗙爜澶辫触锛屾槸鍚﹀凡鐧诲綍锛堟帴鍙i壌鏉冨叧闂棤娉曚慨鏀瑰瘑鐮侊級',
+            type: 'error'
+          });
         }
       }).catch((error)=> {
         console.error(error)
@@ -99,8 +123,9 @@
     },
     close: function () {
       this.showDialog = false;
-      this.newPassword= null;
-      this.confirmPassword=null;
+      this.oldPassword = null;
+      this.newPassword = null;
+      this.confirmPassword = null;
     },
   },
 };

--
Gitblit v1.8.0