From 39269c81905457378a73dc83050349d7a364a1f8 Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期四, 16 一月 2025 18:00:49 +0800 Subject: [PATCH] 修改个人信息 --- Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue | 190 ++++++++++++++++++++++++++++++++--------------- 1 files changed, 130 insertions(+), 60 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 c74a424..6c53aba 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,38 +1,86 @@ <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 { updateUser } from "@/api/system/user/api"; +import {updateUser} from "@/api/system/user/api"; import func from "../../../util/func"; import {changePassword} from "../../../api/user" import userAvatar from "./userAvatar"; import {resetRouter} from '../../../router/router' import {mapGetters} from "vuex"; +import {setStore} from "@/util/store"; export default { 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,56 +90,78 @@ this.handleWitch(); }, methods: { - handleSubmit(form, done) { - if (this.index === 0) { - updateUser(form).then(res => { - if (res.data.success) { - this.$message({ - type: "success", - message: "淇敼淇℃伅鎴愬姛!" - }); - } else { - this.$message({ - type: "error", - message: res.data.msg - }); - } - done(); - }, 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}; + if (this.index === '0') { + console.log('this.userInfo',this.userInfo) + 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() { + this.$refs.userForm.validate((valid) => { + if (valid) { + const params = { + oid: this.userInfo.userOid, + name: this.userForm.userName, + email: this.userForm.email + } + updateUser(params).then(res => { + if (res.data.success) { + this.$message({ + type: "success", + message: "淇敼淇℃伅鎴愬姛!" + }); + // 鏇存柊缂撳瓨 + this.userInfo.userName = this.userForm.userName; + this.userInfo.email = this.userForm.email; + setStore({ name: 'userInfo', content: this.userInfo }); + this.handleWitch(); + } else { + this.$message({ + type: "error", + message: res.data.msg + }); + } + }) + } 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