<template> <div class="app-container"> <el-row :gutter="20"> <el-col :span="6" :xs="24"> <el-card class="box-card"> <div slot="header" class="clearfix"> <span>个人信息</span> </div> <div> <div class="text-center"> <userAvatar :user="user" /> </div> <ul class="list-group list-group-striped"> <li class="list-group-item"> <svg-icon icon-class="user" />用户名称 <div class="pull-right">{{ user.user_name }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="phone" />手机号码 <div class="pull-right">{{ user.mobile }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="email" />用户邮箱 <div class="pull-right">{{ user.user_email }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="tree" />所属部门 <div class="pull-right" v-if="user.dept_info">{{ user.dept_info.deptName }} / {{ postGroup }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="peoples" />所属角色 <div class="pull-right">{{ roleGroup }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="date" />创建日期 <div class="pull-right">{{ parseTime(user.create_time) }}</div> </li> </ul> </div> </el-card> </el-col> <el-col :span="18" :xs="24"> <el-card> <div slot="header" class="clearfix"> <span>基本资料</span> </div> <el-tabs v-model="activeTab"> <el-tab-pane label="基本资料" name="userinfo"> <userInfo :user="user" /> </el-tab-pane> <el-tab-pane label="修改密码" name="resetPwd"> <resetPwd :user="user" /> </el-tab-pane> </el-tabs> </el-card> </el-col> </el-row> </div> </template> <script> import userAvatar from "./userAvatar"; import userInfo from "./userInfo"; import resetPwd from "./resetPwd"; import { getUserProfile } from "@/api/system/user"; export default { name: "Profile", components: { userAvatar, userInfo, resetPwd }, data() { return { user: {}, activeTab: "userinfo" }; }, created() { this.getUser(); }, computed:{ postGroup(){ if(Array.isArray(this.user.posts)){ return this.user.posts.reduce(function(total, currentValue, currentIndex, arr){ return total + currentValue.post_name + " " }, "") } return "" }, roleGroup(){ if(Array.isArray(this.user.roles)){ return this.user.roles.reduce(function(total, currentValue, currentIndex, arr){ return total + currentValue.name + " " }, "") } return "" } }, methods: { getUser() { getUserProfile().then(response => { this.user = response.data; }); } } }; </script>