2019-02-25 15:58:05 +08:00
|
|
|
|
<template>
|
2019-04-14 16:20:04 +08:00
|
|
|
|
<div class="user-wrapper" :class="theme">
|
2019-02-25 15:58:05 +08:00
|
|
|
|
<span class="action">
|
2019-05-19 18:54:09 +08:00
|
|
|
|
<a class="logout_title" target="_blank" href="http://jeecg-boot.mydoc.io">
|
|
|
|
|
<a-icon type="question-circle-o"></a-icon>
|
|
|
|
|
</a>
|
2019-02-25 15:58:05 +08:00
|
|
|
|
</span>
|
|
|
|
|
<header-notice class="action"/>
|
|
|
|
|
<a-dropdown>
|
2019-04-14 16:20:04 +08:00
|
|
|
|
<span class="action action-full ant-dropdown-link user-dropdown-menu">
|
2019-02-25 15:58:05 +08:00
|
|
|
|
<a-avatar class="avatar" size="small" :src="getAvatar()"/>
|
2019-04-14 16:20:04 +08:00
|
|
|
|
<span v-if="isDesktop()">欢迎您,{{ nickname() }}</span>
|
2019-02-25 15:58:05 +08:00
|
|
|
|
</span>
|
|
|
|
|
<a-menu slot="overlay" class="user-dropdown-menu-wrapper">
|
|
|
|
|
<a-menu-item key="0">
|
|
|
|
|
<router-link :to="{ name: 'account-center' }">
|
|
|
|
|
<a-icon type="user"/>
|
|
|
|
|
<span>个人中心</span>
|
|
|
|
|
</router-link>
|
|
|
|
|
</a-menu-item>
|
|
|
|
|
<a-menu-item key="1">
|
2019-05-19 18:54:09 +08:00
|
|
|
|
<router-link :to="{ name: 'account-settings-base' }">
|
2019-02-25 15:58:05 +08:00
|
|
|
|
<a-icon type="setting"/>
|
|
|
|
|
<span>账户设置</span>
|
|
|
|
|
</router-link>
|
|
|
|
|
</a-menu-item>
|
2019-08-24 00:15:45 +08:00
|
|
|
|
<a-menu-item key="3" @click="systemSetting">
|
|
|
|
|
<a-icon type="tool"/>
|
|
|
|
|
<span>系统设置</span>
|
|
|
|
|
</a-menu-item>
|
|
|
|
|
<a-menu-item key="4" @click="updatePassword">
|
2019-05-19 18:54:09 +08:00
|
|
|
|
<a-icon type="setting"/>
|
|
|
|
|
<span>密码修改</span>
|
|
|
|
|
</a-menu-item>
|
2019-08-24 00:15:45 +08:00
|
|
|
|
<a-menu-item key="5" @click="updateCurrentDepart">
|
2019-07-05 15:38:38 +08:00
|
|
|
|
<a-icon type="cluster"/>
|
|
|
|
|
<span>切换部门</span>
|
|
|
|
|
</a-menu-item>
|
2019-02-25 15:58:05 +08:00
|
|
|
|
<!-- <a-menu-item key="2" disabled>
|
|
|
|
|
<a-icon type="setting"/>
|
|
|
|
|
<span>测试</span>
|
|
|
|
|
</a-menu-item>
|
|
|
|
|
<a-menu-divider/>
|
|
|
|
|
<a-menu-item key="3">
|
|
|
|
|
<a href="javascript:;" @click="handleLogout">
|
|
|
|
|
<a-icon type="logout"/>
|
|
|
|
|
<span>退出登录</span>
|
|
|
|
|
</a>
|
|
|
|
|
</a-menu-item>-->
|
|
|
|
|
</a-menu>
|
|
|
|
|
</a-dropdown>
|
|
|
|
|
<span class="action">
|
|
|
|
|
<a class="logout_title" href="javascript:;" @click="handleLogout">
|
|
|
|
|
<a-icon type="logout"/>
|
2019-04-14 16:20:04 +08:00
|
|
|
|
<span v-if="isDesktop()"> 退出登录</span>
|
2019-02-25 15:58:05 +08:00
|
|
|
|
</a>
|
|
|
|
|
</span>
|
2019-05-19 18:54:09 +08:00
|
|
|
|
<user-password ref="userPassword"></user-password>
|
2019-07-05 15:38:38 +08:00
|
|
|
|
<depart-select ref="departSelect" :closable="true" title="部门切换"></depart-select>
|
2019-08-24 00:15:45 +08:00
|
|
|
|
<setting-drawer ref="settingDrawer" :closable="true" title="系统设置"></setting-drawer>
|
2019-02-25 15:58:05 +08:00
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import HeaderNotice from './HeaderNotice'
|
2019-05-19 18:54:09 +08:00
|
|
|
|
import UserPassword from './UserPassword'
|
2019-08-24 00:15:45 +08:00
|
|
|
|
import SettingDrawer from "@/components/setting/SettingDrawer";
|
2019-07-05 15:38:38 +08:00
|
|
|
|
import DepartSelect from './DepartSelect'
|
2019-02-25 15:58:05 +08:00
|
|
|
|
import { mapActions, mapGetters } from 'vuex'
|
2019-04-14 16:20:04 +08:00
|
|
|
|
import { mixinDevice } from '@/utils/mixin.js'
|
2019-05-19 18:54:09 +08:00
|
|
|
|
|
2019-02-25 15:58:05 +08:00
|
|
|
|
export default {
|
|
|
|
|
name: "UserMenu",
|
2019-04-14 16:20:04 +08:00
|
|
|
|
mixins: [mixinDevice],
|
2019-02-25 15:58:05 +08:00
|
|
|
|
components: {
|
2019-05-19 18:54:09 +08:00
|
|
|
|
HeaderNotice,
|
2019-07-05 15:38:38 +08:00
|
|
|
|
UserPassword,
|
2019-08-24 00:15:45 +08:00
|
|
|
|
DepartSelect,
|
|
|
|
|
SettingDrawer
|
2019-02-25 15:58:05 +08:00
|
|
|
|
},
|
2019-04-14 16:20:04 +08:00
|
|
|
|
props: {
|
|
|
|
|
theme: {
|
|
|
|
|
type: String,
|
|
|
|
|
required: false,
|
|
|
|
|
default: 'dark'
|
|
|
|
|
}
|
|
|
|
|
},
|
2019-02-25 15:58:05 +08:00
|
|
|
|
methods: {
|
|
|
|
|
...mapActions(["Logout"]),
|
2019-05-19 18:54:09 +08:00
|
|
|
|
...mapGetters(["nickname", "avatar","userInfo"]),
|
2019-02-25 15:58:05 +08:00
|
|
|
|
getAvatar(){
|
2019-04-14 16:20:04 +08:00
|
|
|
|
console.log('url = '+ window._CONFIG['imgDomainURL']+"/"+this.avatar())
|
|
|
|
|
return window._CONFIG['imgDomainURL']+"/"+this.avatar()
|
2019-02-25 15:58:05 +08:00
|
|
|
|
},
|
|
|
|
|
handleLogout() {
|
|
|
|
|
const that = this
|
|
|
|
|
|
|
|
|
|
this.$confirm({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '真的要注销登录吗 ?',
|
|
|
|
|
onOk() {
|
|
|
|
|
return that.Logout({}).then(() => {
|
2019-04-14 16:20:04 +08:00
|
|
|
|
window.location.href="/";
|
|
|
|
|
//window.location.reload()
|
2019-02-25 15:58:05 +08:00
|
|
|
|
}).catch(err => {
|
|
|
|
|
that.$message.error({
|
|
|
|
|
title: '错误',
|
|
|
|
|
description: err.message
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
onCancel() {
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
},
|
2019-05-19 18:54:09 +08:00
|
|
|
|
updatePassword(){
|
|
|
|
|
let username = this.userInfo().username
|
|
|
|
|
this.$refs.userPassword.show(username)
|
|
|
|
|
},
|
2019-07-05 15:38:38 +08:00
|
|
|
|
updateCurrentDepart(){
|
|
|
|
|
this.$refs.departSelect.show()
|
2019-08-24 00:15:45 +08:00
|
|
|
|
},
|
|
|
|
|
systemSetting(){
|
|
|
|
|
this.$refs.settingDrawer.showDrawer()
|
2019-07-05 15:38:38 +08:00
|
|
|
|
}
|
2019-02-25 15:58:05 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
2019-04-14 16:20:04 +08:00
|
|
|
|
.logout_title {
|
|
|
|
|
color: inherit;
|
|
|
|
|
text-decoration: none;
|
2019-02-25 15:58:05 +08:00
|
|
|
|
}
|
|
|
|
|
</style>
|