<template>
|
<div>
|
<basic-container>
|
<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 func from "../../../util/func";
|
import {changePassword} from "../../../api/user"
|
import userAvatar from "./userAvatar";
|
import {resetRouter} from '../../../router/router'
|
import {mapGetters} from "vuex";
|
|
export default {
|
components: {userAvatar,},
|
data() {
|
return {
|
index: '0',
|
option: option,
|
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: {
|
...mapGetters(["userInfo"]),
|
},
|
created() {
|
this.handleWitch();
|
},
|
methods: {
|
handleWitch() {
|
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 = tabs.index
|
this.handleWitch();
|
},
|
|
userSubmit() {
|
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;
|
}
|
});
|
}
|
}
|
};
|
</script>
|
|
<style>
|
</style>
|