Files
sionrui/frontend/app/web-gold/src/components/TopNav.vue

47 lines
1.1 KiB
Vue
Raw Normal View History

2025-11-10 00:59:40 +08:00
<script setup>
2026-02-24 21:41:05 +08:00
import { computed } from 'vue'
2025-11-10 00:59:40 +08:00
import { useUserStore } from '@/stores/user'
2025-11-12 22:45:29 +08:00
import UserDropdown from '@/components/UserDropdown.vue'
2025-11-10 00:59:40 +08:00
const styles = {
2026-03-02 02:59:47 +08:00
background: 'var(--color-gray-900)',
2025-12-28 13:49:45 +08:00
color: 'var(--color-text-inverse)'
2025-11-10 00:59:40 +08:00
}
2025-11-16 19:35:55 +08:00
2026-02-24 21:41:05 +08:00
const userStore = useUserStore()
2025-11-10 00:59:40 +08:00
2025-11-12 22:45:29 +08:00
// 计算是否应该显示用户组件
const shouldShowUser = computed(() => {
const hasUserName = !!userStore.displayName && userStore.displayName !== '未命名用户'
2026-02-24 21:41:05 +08:00
return hasUserName
2025-11-12 22:45:29 +08:00
})
2025-11-10 00:59:40 +08:00
</script>
<template>
2026-02-24 21:41:05 +08:00
<header class="header-box" :style="styles">
2025-11-10 00:59:40 +08:00
<div>
<div class="h-[70px] flex items-center">
<div class="flex items-center gap-3 flex-1 pl-[30px]">
<!-- 左侧可放 logo 或其他内容 -->
</div>
<div class="flex items-center gap-4 pr-[35px]">
2025-11-12 22:45:29 +08:00
<template v-if="shouldShowUser">
<UserDropdown />
2025-11-10 00:59:40 +08:00
</template>
</div>
</div>
</div>
</header>
</template>
<style scoped>
.header-box {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
border-bottom: 1px solid var(--color-border);
}
</style>