From 391eec3114a17e68652434c6eae610799d80290e Mon Sep 17 00:00:00 2001
From: ludc <ludc@vci-tech.com>
Date: 星期四, 16 一月 2025 11:13:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue |  187 +++++++++++++++++++++++++++++++---------------
 1 files changed, 125 insertions(+), 62 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue b/Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue
index f8250e3..75d83c8 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue
@@ -1,25 +1,55 @@
 <template>
   <div>
     <basic-container>
-      <avue-form
-        ref="form"
-        v-model="form"
-        :option="option"
-        @submit="handleSubmit"
-        @tab-click="handleTabClick">
-        <template slot="avatar" slot-scope="{disabled,size}">
-          <div>
-            <userAvatar :avatar="form.avatar"/>
-          </div>
-        </template>
-      </avue-form>
+      <el-tabs v-model="index" @tab-click="handleTabClick">
+        <el-tab-pane label="涓汉淇℃伅" name="0">
+          <el-form ref="userForm" :model="userForm" :rules="userRules" label-width="90px" size="small">
+            <el-form-item label="澶村儚锛�">
+              <userAvatar :avatar="userForm.avatar"/>
+            </el-form-item>
+            <el-form-item label="鐢ㄦ埛鍚嶏細">
+              <el-input v-model="userForm.userId" :disabled="true"></el-input>
+            </el-form-item>
+            <el-form-item label="濮撳悕锛�" prop="userName">
+              <el-input v-model="userForm.userName"></el-input>
+            </el-form-item>
+            <el-form-item label="褰撳墠瑙掕壊锛�">
+              <el-input v-model="userForm.personName" :disabled="true"></el-input>
+            </el-form-item>
+            <el-form-item label="閭锛�">
+              <el-input v-model="userForm.email"></el-input>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="userSubmit">鎻愪氦</el-button>
+              <el-button @click="handleWitch">娓呯┖</el-button>
+            </el-form-item>
+          </el-form>
+        </el-tab-pane>
+        <el-tab-pane label="淇敼瀵嗙爜" name="1">
+          <el-form ref="passWordForm" :model="passWordForm" :rules="rules" label-width="145px" size="small">
+            <el-form-item label="鐧婚檰瀵嗙爜锛�" prop="oldPassword">
+              <el-input v-model="passWordForm.oldPassword"></el-input>
+            </el-form-item>
+            <el-form-item label="鏂扮櫥闄嗗瘑鐮侊細" prop="password">
+              <el-input v-model="passWordForm.password"></el-input>
+            </el-form-item>
+            <el-form-item label="鏂板瘑鐮佺櫥闄嗙‘璁わ細" prop="confirmPassword">
+              <el-input v-model="passWordForm.confirmPassword"></el-input>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="passWordSubmit">鎻愪氦</el-button>
+              <el-button @click="handleWitch">娓呯┖</el-button>
+            </el-form-item>
+          </el-form>
+        </el-tab-pane>
+      </el-tabs>
     </basic-container>
   </div>
 </template>
 
 <script>
 import option from "@/option/user/info";
-import {getUserInfo, updateInfo, updatePassword} from "@/api/system/user";
+import {updateUser} from "@/api/system/user/api";
 import func from "../../../util/func";
 import {changePassword} from "../../../api/user"
 import userAvatar from "./userAvatar";
@@ -30,9 +60,26 @@
   components: {userAvatar,},
   data() {
     return {
-      index: 0,
+      index: '0',
       option: option,
-      form: {}
+      userForm: {},
+      passWordForm: {},
+      userRules: {
+        userName: [
+          {required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur'},
+        ],
+      },
+      rules: {
+        oldPassword: [
+          {required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur'},
+        ],
+        password: [
+          {required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur'},
+        ],
+        confirmPassword: [
+          {required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur'},
+        ],
+      }
     };
   },
   computed: {
@@ -42,58 +89,74 @@
     this.handleWitch();
   },
   methods: {
-    handleSubmit(form, done) {
-      if (this.index === 0) {
-        updateInfo(form).then(res => {
-          if (res.data.success) {
-            this.$message({
-              type: "success",
-              message: "淇敼淇℃伅鎴愬姛!"
-            });
-          } else {
-            this.$message({
-              type: "error",
-              message: res.data.msg
-            });
-          }
-          done();
-        }, error => {
-          window.console.log(error);
-          done();
-        })
-      } else {
-        let userInfo = JSON.parse(localStorage.getItem('saber-userInfo'));
-        let params = {
-          userName: userInfo.content.userId,
-          oldPassword: func.encryptData(form.oldPassword, 'daliantan0v0vcip'),
-          password: func.encryptData(form.password, 'daliantan0v0vcip'),
-          confirmPassword: func.encryptData(form.confirmPassword, 'daliantan0v0vcip'),
-
-        }
-        changePassword(params).then(res => {
-          if (res.data.code === 200) {
-            this.$message.success(res.data.msg);
-            this.passwordVisible = false;
-            this.$store.dispatch("LogOut").then(() => {
-              resetRouter();
-              this.$router.push({path: "/login"});
-            });
-          }
-        }).catch(err => {
-          console.log(err);
-        })
-      }
-    },
     handleWitch() {
-      if (this.index === 0) {
-        this.form = {...this.userInfo};
-        console.log(this.form);
+      if (this.index === '0') {
+        const {avatar, userId, userName, email, personName} = this.userInfo;
+        this.userForm = {avatar, userId, userName, email, personName};
+      } else {
+        this.passWordForm = {};
+        this.$refs.passWordForm.clearValidate();
       }
     },
     handleTabClick(tabs) {
-      this.index = func.toInt(tabs.index);
+      this.index = tabs.index
       this.handleWitch();
-      this.$refs.form.resetFields();
+    },
+
+    userSubmit() {
+      console.log('123')
+      this.$refs.userForm.validate((valid) => {
+        if (valid) {
+          const params = {
+            id: this.userInfo.userId,
+            name: this.userForm.userName,
+            email: this.userForm.email
+          }
+          updateUser(params).then(res => {
+            if (res.data.success) {
+              this.$message({
+                type: "success",
+                message: "淇敼淇℃伅鎴愬姛!"
+              });
+            } else {
+              this.$message({
+                type: "error",
+                message: res.data.msg
+              });
+            }
+            done();
+          })
+        } else {
+          return false;
+        }
+      });
+    },
+    passWordSubmit() {
+      this.$refs.passWordForm.validate((valid) => {
+        if (valid) {
+          let userInfo = JSON.parse(localStorage.getItem('saber-userInfo'));
+          let params = {
+            userName: userInfo.content.userId,
+            oldPassword: func.encryptData(this.passWordForm.oldPassword, 'daliantan0v0vcip'),
+            password: func.encryptData(this.passWordForm.password, 'daliantan0v0vcip'),
+            confirmPassword: func.encryptData(this.passWordForm.confirmPassword, 'daliantan0v0vcip'),
+
+          }
+          changePassword(params).then(res => {
+            if (res.data.code === 200) {
+              this.$message.success(res.data.msg);
+              this.$store.dispatch("LogOut").then(() => {
+                resetRouter();
+                this.$router.push({path: "/login"});
+              });
+            }
+          }).catch(err => {
+            console.log(err);
+          })
+        } else {
+          return false;
+        }
+      });
     }
   }
 };

--
Gitblit v1.9.3