1111
Some checks failed
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Has been cancelled
Build Multi-Platform Binaries / build-frontend (push) Has been cancelled

This commit is contained in:
2026-01-21 22:45:21 +08:00
parent ad727aff3a
commit 498d20e3fe
3 changed files with 35 additions and 17 deletions

View File

@@ -4,11 +4,11 @@ import { RouterView, useRouter, useRoute } from 'vue-router'
import {
NLayout, NLayoutHeader, NLayoutContent, NLayoutSider, NMenu,
NButton, NIcon, NConfigProvider, NMessageProvider,
NDialogProvider, NGlobalStyle, type GlobalThemeOverrides
NDialogProvider, NGlobalStyle, NDropdown, NAvatar, type GlobalThemeOverrides
} from 'naive-ui'
import {
HomeOutline, ExtensionPuzzleOutline, LogOutOutline,
ServerOutline, MenuOutline
ServerOutline, MenuOutline, PersonCircleOutline
} from '@vicons/ionicons5'
import type { MenuOption } from 'naive-ui'
import { getServerStatus, removeToken, getToken } from './api'
@@ -69,6 +69,21 @@ const logout = () => {
router.push('/login')
}
// User dropdown menu options
const userDropdownOptions = [
{
label: '退出登录',
key: 'logout',
icon: () => h(NIcon, null, { default: () => h(LogOutOutline) })
}
]
const handleUserDropdown = (key: string) => {
if (key === 'logout') {
logout()
}
}
// Theme Overrides
const themeOverrides: GlobalThemeOverrides = {
common: {
@@ -131,10 +146,13 @@ const themeOverrides: GlobalThemeOverrides = {
<template #icon><n-icon><MenuOutline /></n-icon></template>
</n-button>
<div class="header-right">
<n-button quaternary @click="logout">
<template #icon><n-icon><LogOutOutline /></n-icon></template>
Logout
</n-button>
<n-dropdown :options="userDropdownOptions" @select="handleUserDropdown">
<n-button quaternary circle size="large">
<template #icon>
<n-icon size="24"><PersonCircleOutline /></n-icon>
</template>
</n-button>
</n-dropdown>
</div>
</div>
</n-layout-header>