获取当前登录人信息

该段代码展示了在Vue.js应用中,如何创建一个HTML结构来显示用户欢迎语和头像,头像在鼠标悬停时显示个人信息框,包括退出功能。使用了ElementPlus库的对话框组件来实现退出确认,并通过API处理退出登录操作。
摘要由CSDN通过智能技术生成

html

        <div class="landingPerson">
          <span class="head-span">您好,{{ form.username }}</span>
          <div class="head-img">
            <img :src="form.avatar" alt="" @mouseover="showInfo" @mouseleave="hideInfo" />
            <!-- 退出 -->
            <div v-show="userInfo" class="box2">
              <p @click="personMessage">个人信息</p>
              <p @click="quit">退出</p>
            </div>
          </div>
        </div>

js

<script setup >
import { onMounted, reactive, ref } from 'vue'
import NavCom from '@/components/Home/NavCom.vue' //导航
import { ElMessageBox } from 'element-plus'
import { EnterpriseExitApi } from '@/api/index'
import { useRouter } from "vue-router";

let route = useRouter();

// import BannerCom from "@/components/Home/BannerCom.vue"; //轮播图
// import WorkCom from "@/components/Home/WorkCom.vue"; //工作台
// import DoubleCom from "@/components/Home/DoubleCom.vue"; //双选会

// 退出
const userInfo = ref(false)

const showInfo = () => {
  console.log('111', 111)
  userInfo.value = true
}

const hideInfo = () => {
  setTimeout(() => {
    userInfo.value = false
  }, 3000)
}

const quit = () => {
  EnterpriseExitApi().then((res) => {
    console.log('res', res) 
  })
     //跳转到登录
      route.push('/login')
      ElMessageBox({
        title: '提示',
        message: '退出成功!'
      })
}



// 获取当前登录人信息
const form = reactive({
  username: 'XXX',
  avatar: '/imgs/header-default.png',
  orgName: 'XXXX',
  orglogo: '/imgs/default_org_logo.png'
})

onMounted(() => {
  getUserInfo()
})

const getUserInfo = function () {
  var userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
  // debugger
  form.username = userInfo.realName ?? 'XXX'
  form.avatar = !userInfo.avatar ? form.avatar : userInfo.avatar
  form.orgName = userInfo.orgName ?? 'XXXX'
  form.orgLogo = !userInfo.orgLogo ? form.orglogo : userInfo.orglogo
}
</script>

css

<style lang="scss" scoped>
.home {
  width: 100%;
  height: 100%;
  /* background-color: antiquewhite; */
}
header {
  width: 100%;
  height: 40px;
  background-color: #409eff;
  display: flex;
  justify-content: end;
  margin-bottom: 30px;
}
.center {
  width: 1200px;
  height: 40px;
  line-height: 40px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  /* background-color: palegreen; */
}
.hear-left {
  width: 50%;
  /* padding-left: 50px; */
}

.hear-left > img {
  height: 15px;
}
.head-span {
  display: block;
  line-height: 40px;
  margin: 0 20px;
  color: white;
  font-size: 14px;
}
/* 头像 */
.head-img {
  position: relative;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  margin-right: 10px;
}
.landingPerson {
  display: flex;
}

.box2 {
  position: absolute;
  bottom: -100px;
  left: -60%;
  border: 1px solid #ccc;
  width: 100px;
  height: 100px;
  background-color: #fff;
  box-sizing: border-box;
  // background-color: palegreen;
  z-index: 999;
  p {
    margin-top: 3px;
    text-align: center;
    font-size: 8px;
    &:hover {
      cursor: pointer;
    }
  }
}

main {
  width: 1200px;
  min-height: 500px;
  /* background-color: aquamarine; */
  margin: 0 auto;
}
.el-input {
  width: 200px;
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值