index.vue 3.26 KB
Newer Older
sunhongwei's avatar
sunhongwei committed
1 2 3 4 5 6
<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">
Marcus's avatar
Marcus committed
7
            <span>{{ $t('个人信息') }}</span>
sunhongwei's avatar
sunhongwei committed
8 9 10 11 12 13 14
          </div>
          <div>
            <div class="text-center">
              <userAvatar :user="user" />
            </div>
            <ul class="list-group list-group-striped">
              <li class="list-group-item">
Marcus's avatar
Marcus committed
15
                <svg-icon icon-class="user" />{{ $t('用户名称') }}<div class="pull-right">{{ user.username }}</div>
sunhongwei's avatar
sunhongwei committed
16 17
              </li>
              <li class="list-group-item">
Marcus's avatar
Marcus committed
18
                <svg-icon icon-class="phone" />{{ $t('手机号码') }}<div class="pull-right">{{ user.mobile }}</div>
sunhongwei's avatar
sunhongwei committed
19 20
              </li>
              <li class="list-group-item">
Marcus's avatar
Marcus committed
21
                <svg-icon icon-class="email" />{{ $t('用户邮箱') }}<div class="pull-right">{{ user.email }}</div>
sunhongwei's avatar
sunhongwei committed
22 23
              </li>
              <li class="list-group-item">
Marcus's avatar
Marcus committed
24
                <svg-icon icon-class="tree" />{{ $t('所属部门') }}<div class="pull-right" v-if="user.dept">{{ user.dept.name }}</div>
sunhongwei's avatar
sunhongwei committed
25 26
              </li>
              <li class="list-group-item">
Marcus's avatar
Marcus committed
27
                <svg-icon icon-class="tree" />{{ $t('所属岗位') }}<div class="pull-right" v-if="user.posts">{{ user.posts.map(post => post.name).join(',') }}</div>
sunhongwei's avatar
sunhongwei committed
28 29
              </li>
              <li class="list-group-item">
Marcus's avatar
Marcus committed
30
                <svg-icon icon-class="peoples" />{{ $t('所属角色') }}<div class="pull-right" v-if="user.roles">{{ user.roles.map(role => role.name).join(',') }}</div>
sunhongwei's avatar
sunhongwei committed
31 32
              </li>
              <li class="list-group-item">
Marcus's avatar
Marcus committed
33
                <svg-icon icon-class="date" />{{ $t('创建日期') }}<div class="pull-right">{{ parseTime(user.createTime) }}</div>
sunhongwei's avatar
sunhongwei committed
34 35 36 37 38 39 40 41
              </li>
            </ul>
          </div>
        </el-card>
      </el-col>
      <el-col :span="18" :xs="24">
        <el-card>
          <div slot="header" class="clearfix">
Marcus's avatar
Marcus committed
42
            <span>{{ $t('基本资料') }}</span>
sunhongwei's avatar
sunhongwei committed
43 44
          </div>
          <el-tabs v-model="activeTab">
Marcus's avatar
Marcus committed
45
            <el-tab-pane :label="$t('基本资料')" name="userinfo">
sunhongwei's avatar
sunhongwei committed
46 47
              <userInfo :user="user" />
            </el-tab-pane>
Marcus's avatar
Marcus committed
48
            <el-tab-pane :label="$t('修改密码')" name="resetPwd">
sunhongwei's avatar
sunhongwei committed
49 50
              <resetPwd :user="user" />
            </el-tab-pane>
Marcus's avatar
Marcus committed
51
            <el-tab-pane :label="$t('社交信息')" name="userSocial">
sunhongwei's avatar
sunhongwei committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
              <userSocial :user="user" :getUser="getUser" :setActiveTab="setActiveTab" />
            </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 userSocial from "./userSocial";
import { getUserProfile } from "@/api/system/user";

export default {
  name: "Profile",
  components: { userAvatar, userInfo, resetPwd, userSocial },
  data() {
    return {
      user: {},
      roleGroup: {},
      postGroup: {},
      activeTab: "userinfo"
    };
  },
  created() {
    this.getUser();
  },
  methods: {
    getUser() {
      getUserProfile().then(response => {
        this.user = response.data;
      });
    },
    setActiveTab(activeTab) {
      this.activeTab = activeTab
    }
  }
};
</script>