<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";
|
import {getSessionStore} from "../../libs/storage";
|
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,
|
flag:0,
|
};
|
},
|
methods: {
|
init() {
|
let psw = this.getStore("userInfo");
|
psw = JSON.parse(psw).description;
|
this.checkStrengthValue(psw);
|
},
|
checkStrengthValue(v) {
|
// 评级制判断密码强度 最高5
|
let grade = 0;
|
if (/\d/.test(v)) {
|
grade++; //数字
|
}
|
if (/[a-z]/.test(v)) {
|
grade++; //小写
|
}
|
if (/[A-Z]/.test(v)) {
|
grade++; //大写
|
}
|
if (/\W/.test(v)) {
|
grade++; //特殊字符
|
}
|
if (v.length >= 8) {
|
grade++;
|
}
|
if(grade<5){
|
this.showChangePass = true;
|
this.flag++;
|
if(this.flag>1){
|
this.handleClickUserDropdown("loginout");
|
}
|
setInterval(() => {
|
this.init();
|
}, 1000*60)
|
}
|
},
|
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.setSessionStore("accessToken", "")
|
// 强制刷新页面 重新加载router
|
location.reload();
|
});
|
}
|
},
|
},
|
mounted() {
|
this.init();
|
},
|
};
|
</script>
|
|
<style lang="less" scoped>
|
</style>
|