zhangzeli
2021-11-01 baa03e2f9b1388a673e39cc3f2c1b055b16e513e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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
94
95
<template>
  <div style="display: inline-block">
    <Dropdown transfer trigger="hover" @on-click="handleClickUserDropdown">
      <div style="display: inline-block">
        <div class="header-right-icon header-user header-action">
          <Avatar v-if="avatar" :src="avatar" size="small"></Avatar>
          <Avatar v-else icon="md-person" size="small"></Avatar>
          <span class="header-username">{{ nickname }}</span>
        </div>
      </div>
      <DropdownMenu slot="list">
        <DropdownItem name="ownSpace">
          <Icon type="md-person" style="margin: 0 10px 0 0" />{{
            $t("userCenter")
          }}</DropdownItem
        >
        <DropdownItem name="changePass">
          <Icon type="md-unlock" style="margin: 0 10px 0 0" />{{
            $t("changePass")
          }}</DropdownItem
        >
        <DropdownItem name="loginout" divided>
          <Icon type="md-log-out" style="margin: 0 10px 0 0" />{{
            $t("logout")
          }}</DropdownItem
        >
      </DropdownMenu>
    </Dropdown>
 
    <!-- 修改密码 -->
    <changePass v-model="showChangePass" />
  </div>
</template>
 
<script>
import { getOtherSet } from "@/api/index";
import util from "@/libs/util.js";
import changePass from "@/views/change-pass/change-pass";
export default {
  name: "user",
  components: {
    changePass,
  },
  props: {},
  computed: {
    nickname() {
      return this.$store.state.user.nickname;
    },
    avatar() {
      return this.$store.state.user.avatar;
    },
  },
  data() {
    return {
      showChangePass: false,
    };
  },
  methods: {
    init() {},
    handleClickUserDropdown(name) {
      if (name == "ownSpace") {
        util.openNewPage(this, "ownspace_index");
        this.$router.push({
          name: "ownspace_index",
        });
      } else if (name == "changePass") {
        this.showChangePass = true;
      } else if (name == "loginout") {
        // 退出登录
        this.$store.commit("setLoading", true);
        getOtherSet().then((res) => {
          this.$store.commit("setLoading", false);
          if (res.result) {
            let domain = res.result.ssoDomain;
            Cookies.set("accessToken", "", {
              domain: domain,
              expires: 7,
            });
          }
          this.$store.commit("logout", this);
          this.setStore("accessToken", "");
          // 强制刷新页面 重新加载router
          location.reload();
        });
      }
    },
  },
  mounted() {
    this.init();
  },
};
</script>
 
<style lang="less" scoped>
</style>