You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
414 lines
16 KiB
414 lines
16 KiB
<template>
|
|
<div>
|
|
<el-dropdown class="avatar-container right-menu-item hidden-sm-and-down" trigger="click" @command="handleCommand" @click.native="onDropdownClick">
|
|
<div class="avatar-wrapper">
|
|
<img v-if="userInfo && userInfo.headimgurl" class="user-avatar" :src="userInfo.headimgurl">
|
|
<img v-else class="user-avatar" src="../../../assets/image/user_img.gif">
|
|
<span class="username">{{getTimeStatus}},<b>{{userInfo.username}}</b></span>
|
|
<i class="el-icon-caret-bottom"></i>
|
|
</div>
|
|
<el-dropdown-menu slot="dropdown" style="width:460px;">
|
|
<div class="dropdown">
|
|
<div class="topBox">
|
|
<div class="topBox_logo" v-if="userInfo.memType!=='0'">
|
|
<img v-if="!branchUsersCount || !branchUsersCount.imgUrl" src="../../../assets/image/image_not_found_small.jpg" alt="">
|
|
<img v-else :src="branchUsersCount.imgUrl" alt="">
|
|
|
|
</div>
|
|
<div class="topBox_logo" v-else>
|
|
<img v-if="userInfo && userInfo.headimgurl" class="user-avatar" :src="userInfo.headimgurl">
|
|
<img v-else class="user-avatar" src="../../../assets/image/user_img.gif">
|
|
</div>
|
|
<div class="topBox_desc">
|
|
<p class="topBox_branch">{{userInfo.branchName?userInfo.branchName:''}}</p>
|
|
<div class="topBox_version">
|
|
<span>账户类型 /
|
|
<b class="version" v-if="userInfo.memType==='0' && userInfo.atype==='1'"> 个人主账户 </b>
|
|
<b class="version" v-else-if="userInfo.memType==='0' && userInfo.atype==='0'"> 个人子账户 </b>
|
|
<b class="version" v-else-if="userInfo.memType==='1'"> 企业管理员账户 </b>
|
|
<b class="version" v-else-if="userInfo.memType==='2'"> 企业员工账户 </b>
|
|
</span>
|
|
<span class="level" v-if="userInfo.memType==='0'" @click="upgradeToBranchAccount">
|
|
<i class="el-icon-upload2"></i>
|
|
<span @click="upgradeToBranchAccount">升级</span>
|
|
</span>
|
|
</div>
|
|
<div class="topBox_num">
|
|
<span @click="getBranchInterestsDetail">账号数量 <span v-if="branchUsersCount && branchUsersCount.branchId">( {{branchUsersCount.currUsers }} / {{branchUsersCount.maxUsers}} )个</span> <i class="el-icon-refresh-right"></i></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="middleBox">
|
|
<p class="middleBox_username">用户名称:<b>{{userInfo.username}}</b> </p>
|
|
<div class="middleBox_role">
|
|
<span>我的角色:</span>
|
|
<span class="middleBox_role_name">
|
|
<a> {{getMyRoleNames()}} </a>
|
|
</span>
|
|
</div>
|
|
<div class="middleBox_role">
|
|
<span>会员等级:</span>
|
|
<span class="middleBox_role_name">
|
|
<a v-if="!userInfo.ilvlId || userInfo.ilvlId=='1'"> {{userInfo.ilvlName?userInfo.ilvlName:'普通会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='2'"> {{userInfo.ilvlName?userInfo.ilvlName:'青铜会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='3'"> {{userInfo.ilvlName?userInfo.ilvlName:'白银会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='4'"> {{userInfo.ilvlName?userInfo.ilvlName:'黄金会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='5'"> {{userInfo.ilvlName?userInfo.ilvlName:'紫金会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='6'"> {{userInfo.ilvlName?userInfo.ilvlName:'皇冠会员'}} </a>
|
|
</span>
|
|
</div>
|
|
<div class="middleBox_role">
|
|
<span>能力等级:</span>
|
|
<span class="middleBox_role_name">
|
|
<a v-if="!userInfo.gradeId || userInfo.gradeId=='1'"> {{userInfo.ilvlName?userInfo.ilvlName:'普通会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='2'"> {{userInfo.ilvlName?userInfo.ilvlName:'青铜会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='3'"> {{userInfo.ilvlName?userInfo.ilvlName:'白银会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='4'"> {{userInfo.ilvlName?userInfo.ilvlName:'黄金会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='5'"> {{userInfo.ilvlName?userInfo.ilvlName:'紫金会员'}} </a>
|
|
<a v-else-if="userInfo.ilvlId=='6'"> {{userInfo.ilvlName?userInfo.ilvlName:'皇冠会员'}} </a>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="bottomBox2">
|
|
<!--<p class="el-icon-menu" @click="handleCommand('myWork')">我的工作台</p> -->
|
|
<p class="el-icon-user" @click="switchUser">切换账户</p>
|
|
<p class="el-icon-edit" @click="handleCommand('updateUserInfo')">账户明细</p>
|
|
<p class="el-icon-user-solid" @click="handleCommand('branchSet')">团队管理</p>
|
|
<p @click="logout" class="el-icon-switch-button">退出登录</p>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
</el-dropdown-menu>
|
|
</el-dropdown>
|
|
|
|
|
|
<el-dialog
|
|
title="请选择一个账户进行登录"
|
|
:visible.sync="phonenoUsersVisible"
|
|
width="600" append-to-body>
|
|
<el-table :data="phonenoUsers">
|
|
<el-table-column prop="displayUserid" label="登录账号">
|
|
</el-table-column>
|
|
<el-table-column prop="username" label="姓名">
|
|
</el-table-column>
|
|
<el-table-column prop="branchName" label="企业">
|
|
</el-table-column>
|
|
<el-table-column label="操作">
|
|
<template slot-scope="scope">
|
|
<el-button type="primary" @click="toLogin(scope.row)">登录222</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-dialog>
|
|
<el-dialog
|
|
title="新增机构"
|
|
:visible.sync="branchAddVisible"
|
|
width="60%"
|
|
append-to-body
|
|
top="20px"
|
|
:close-on-click-modal="false"
|
|
>
|
|
<branch-add
|
|
:branch="{id:userInfo.branchId,branchName:'',admUserid:userInfo.branchId,admUsername:userInfo.username,luserid:userInfo.userid,lusername:userInfo.username}"
|
|
op-type="add"
|
|
:visible="branchAddVisible"
|
|
@cancel="branchAddVisible=false"
|
|
@submit="afterAddSubmit"
|
|
></branch-add>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import NProgress from 'nprogress' // progress bar
|
|
import config from '../../../common/config';
|
|
import { setToken,removeCacheUserInfo} from '@/utils/auth'
|
|
import { mapGetters } from 'vuex'
|
|
import dayjs from 'dayjs'
|
|
import md5 from 'js-md5';
|
|
import { queryMyUsers,switchUser } from '@/api/login';
|
|
|
|
import { getBranchInterestsDetail } from '@/api/branch';
|
|
import BranchAdd from "@/views/mdp/sys/branch/BranchEdit";
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
branchAddVisible:false,
|
|
phonenoUsers:[],
|
|
phonenoUsersVisible:false,
|
|
branchUsersCount:{
|
|
branchId:'',
|
|
currUsers:1,
|
|
maxUsers:100,
|
|
imgUrl:'',
|
|
defalut:1,
|
|
}
|
|
|
|
}
|
|
},
|
|
|
|
computed: {
|
|
...mapGetters([
|
|
'userInfo',
|
|
'roles',
|
|
'myPosts'
|
|
]),
|
|
getTimeStatus() {
|
|
let hour = dayjs().hour();
|
|
let msg = '早上好';
|
|
if(hour >= 13 || hour <= 18) {
|
|
msg = '下午好';
|
|
}else if (hour >= 19 || hour <= 24){
|
|
msg = '晚上好';
|
|
}
|
|
return msg;
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
onDropdownClick(){
|
|
if( this.branchUsersCount.defalut||this.branchUsersCount.branchId!=this.userInfo.branchId){
|
|
this.getBranchInterestsDetail();
|
|
}
|
|
},
|
|
getBranchInterestsDetail(){
|
|
getBranchInterestsDetail().then(res=>this.branchUsersCount=res.data.data||this.branchUsersCount)
|
|
},
|
|
getMyRoleNames(){
|
|
if(this.roles && this.roles.length>0){
|
|
var myRoles=this.roles.filter(i=>i.roleid.indexOf('SCOPE')<0);
|
|
return myRoles.map(i=>i.rolename).join(",")
|
|
}
|
|
},
|
|
switchUser(){
|
|
queryMyUsers().then(res0=>{
|
|
if(res0.data.tips.isOk){
|
|
this.phonenoUsers=res0.data.data;
|
|
if(res0.data.data.length<=1){
|
|
this.$notify.warning("当前没有关联的账户,无须切换");
|
|
}else{
|
|
this.phonenoUsersVisible=true;
|
|
}
|
|
}else{
|
|
this.$notify.error(res0.data.tips.msg);
|
|
}
|
|
})
|
|
},
|
|
handleCommand(command){
|
|
if(process.env.CONTEXT=='sys'){
|
|
if(command=='updateUserInfo'){
|
|
this.$router.push({path:'/my/work/updateUserInfo'})
|
|
}
|
|
if(command=='myWork'){
|
|
this.$router.push({path:'/my/work/index'})
|
|
}
|
|
if(command=='branchSet'){
|
|
this.$router.push({path:'/mdp/sys/branch/branchSet'})
|
|
}
|
|
}else{
|
|
var prefixUrl=config.getBaseDomainUrl()+'/sys/'+process.env.VERSION+'/#/'
|
|
if(command=='updateUserInfo'){
|
|
window.open(prefixUrl+'my/work/updateUserInfo')
|
|
NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it
|
|
}
|
|
if(command=='myWork'){
|
|
this.$router.push({path:'/my/work/index'})
|
|
}
|
|
if(command=='branchSet'){
|
|
window.open(prefixUrl+'mdp/sys/branch/branchSet')
|
|
NProgress.done()
|
|
}
|
|
}
|
|
|
|
},
|
|
upgradeToBranchAccount(){
|
|
//跳转到购买模块页面
|
|
this.branchAddVisible=true;
|
|
},
|
|
|
|
afterAddSubmit(){
|
|
|
|
},
|
|
toLogin(user) {
|
|
debugger;
|
|
this.$prompt('请输入密码', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
}).then(({ value }) => {
|
|
let params={
|
|
password:md5(value),
|
|
userloginid:user.userid,
|
|
authType:'password_display_userid' ,
|
|
grantType:"password"
|
|
}
|
|
debugger;
|
|
//userloginid, password,grantType,authType,deptid,userid
|
|
switchUser(params.userloginid,params.password,params.grantType,params.authType,'',params.userloginid).then(res => {
|
|
this.phonenoUsersVisible=false;
|
|
if(res.data.tips.isOk==true){
|
|
setToken( res.data.data.accessToken.tokenValue)
|
|
removeCacheUserInfo();
|
|
this.$store.dispatch('GetUserInfo').then((res2)=>{
|
|
this.$router.push({ path: '/' });
|
|
}).catch(err=>{
|
|
|
|
});
|
|
}else{
|
|
this.$notify.error(res.data.tips.msg);
|
|
}
|
|
}).catch((e) => {
|
|
|
|
})
|
|
}).catch(() => {
|
|
this.phonenoUsersVisible=false;
|
|
});
|
|
},
|
|
logout() {
|
|
this.$store.dispatch('LogOut').then(() => {
|
|
location.replace('/'+process.env.CONTEXT+'/'+process.env.VERSION+'/');
|
|
})
|
|
},
|
|
|
|
},
|
|
components:{
|
|
BranchAdd
|
|
},
|
|
mounted() {
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.avatar-container {
|
|
height: 50px;
|
|
display: flex;
|
|
align-items: center;
|
|
.avatar-wrapper {
|
|
cursor: pointer;
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
.user-avatar {
|
|
height: 34px;
|
|
width: 34px;
|
|
border-radius: 50%;
|
|
margin-right: 12px;
|
|
}
|
|
.username{
|
|
color: #7D7D7D;
|
|
font-size: 18px;
|
|
margin-right: 2px;
|
|
}
|
|
.el-icon-caret-bottom {
|
|
font-size: 22px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.dropdown {
|
|
padding: 0 20px 0 20px;
|
|
.topBox {
|
|
height: 100px;
|
|
display: flex;
|
|
flex-direction: row;
|
|
border-bottom: 1px solid #f6f6f6;
|
|
.topBox_logo {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
img {
|
|
width: 52px;
|
|
height: 52px;
|
|
}
|
|
}
|
|
.topBox_desc {
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin-left: 20px;
|
|
width: 100%;
|
|
justify-content: center;
|
|
.topBox_branch {
|
|
font-size: 18px;
|
|
margin-bottom: 8px;
|
|
}
|
|
.topBox_version {
|
|
display: flex;
|
|
flex-direction: row;
|
|
margin-bottom: 8px;
|
|
font-size: 14px;
|
|
.version {
|
|
display: inline-block;
|
|
font-weight: normal;
|
|
color: rgb(69, 196, 186);
|
|
margin-top: 4px;
|
|
}
|
|
.level {
|
|
background: rgb(64, 158, 255);
|
|
margin-left: 10px;
|
|
padding: 4px 11px 4px 8px;
|
|
border-radius: 2px;
|
|
color: #fff;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
.topBox_num {
|
|
font-size: 14px;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
}
|
|
|
|
.middleBox {
|
|
min-height: 60px;
|
|
border-bottom: 1px solid #f6f6f6;
|
|
padding: 12px 0;
|
|
.middleBox_username {
|
|
margin-bottom: 6px;
|
|
b {
|
|
font-weight: normal;
|
|
color: #606060;
|
|
}
|
|
}
|
|
.middleBox_role {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
line-height: 28px;
|
|
.middleBox_role_name {
|
|
color: #606060;
|
|
}
|
|
}
|
|
}
|
|
|
|
.bottomBox2 {
|
|
height: 120px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
p {
|
|
display: flex;
|
|
cursor: pointer;
|
|
width: 100%;
|
|
height: 40px;
|
|
text-align: left;
|
|
align-items: center;
|
|
}
|
|
p:hover {
|
|
background: rgb(243, 243, 243);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|