From 91bfcf61f44f353dfebc54a57b5b774721de3e9a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 19 十月 2026 09:39:22 +0800
Subject: [PATCH] feat(auth): 更新门户认证页面布局和样式
---
src/packages/effects/layouts/src/basic/header/header.vue | 55 +++++++++++++++++++++++++++++++------------------------
1 files changed, 31 insertions(+), 24 deletions(-)
diff --git a/src/packages/effects/layouts/src/basic/header/header.vue b/src/packages/effects/layouts/src/basic/header/header.vue
index d5687ae..4105989 100644
--- a/src/packages/effects/layouts/src/basic/header/header.vue
+++ b/src/packages/effects/layouts/src/basic/header/header.vue
@@ -1,14 +1,15 @@
<script lang="ts" setup>
import { computed, useSlots } from 'vue';
-import { useRefresh } from '..\..\..\..\hooks\src';
-import { RotateCw } from '..\..\..\..\..\icons\src';
-import { preferences, usePreferences } from '..\..\..\..\..\preferences\src';
-import { useAccessStore } from '..\..\..\..\..\stores\src';
+import { useRefresh } from '../../../../hooks/src';
+import { RotateCw } from '../../../../../icons/src';
+import { preferences, usePreferences } from '../../../../../preferences/src';
+import { useAccessStore } from '../../../../../stores/src';
-import { VbenFullScreen, VbenIconButton } from '..\..\..\..\..\@core\ui-kit\shadcn-ui\src';
+import { VbenFullScreen, VbenIconButton } from '../../../../../@core/ui-kit/shadcn-ui/src';
import {
+ DatabaseBackupButton,
GlobalSearch,
LanguageToggle,
PreferencesButton,
@@ -47,6 +48,9 @@
const rightSlots = computed(() => {
const list: Array<SlotItem> = [];
+ if (preferences.widget.refresh) {
+ list.push({ index: REFERENCE_VALUE - 10, name: 'refresh' });
+ }
// 鍏ㄥ眬鎼滅储
if (preferences.widget.globalSearch) {
list.push({
@@ -56,6 +60,12 @@
}
// 鍋忓ソ璁剧疆蹇嵎鍔熻兘
if (preferencesButtonPosition.value.header) {
+ // 鏁版嵁搴撳浠芥寜閽�
+ list.push({
+ index: REFERENCE_VALUE + 5,
+ name: 'database-backup',
+ });
+
list.push({
index: REFERENCE_VALUE + 10,
name: 'preferences',
@@ -113,14 +123,6 @@
const leftSlots = computed(() => {
const list: Array<SlotItem> = [];
- // 鍒锋柊
- if (preferences.widget.refresh) {
- list.push({
- index: 0,
- name: 'refresh',
- });
- }
-
Object.keys(slots).forEach((key) => {
// 閫傞厤鎻掓Ы鍚嶇О锛屼緥濡傜涓�涓彃妲藉悕锛歨eader-left-1
if (key.startsWith('header-left')) {
@@ -154,17 +156,12 @@
v-for="slot in leftSlots.filter((item) => item.index < REFERENCE_VALUE)"
:key="slot.name"
>
- <slot :name="slot.name">
- <template v-if="slot.name === 'refresh'">
- <VbenIconButton class="my-0 mr-1 rounded-md" @click="refresh">
- <RotateCw class="size-4" />
- </VbenIconButton>
- </template>
- </slot>
+ <slot :name="slot.name"></slot>
</template>
<div class="flex-center hidden lg:block">
<slot name="breadcrumb"></slot>
</div>
+ <div v-if="preferences.app.layout === 'mixed-nav'" class="portal-header-motto">寮�鏀惧崗浣溿��瀛︽湳鐮旂┒銆�鏈嶅姟鍙戝睍</div>
<template
v-for="slot in leftSlots.filter((item) => item.index > REFERENCE_VALUE)"
:key="slot.name"
@@ -173,21 +170,31 @@
</template>
<div
:class="`menu-align-${preferences.header.menuAlign}`"
- class="flex h-full min-w-0 flex-1 items-center"
+ class="portal-header-navigation flex h-full min-w-0 flex-1 items-center"
>
<slot name="menu"></slot>
</div>
- <div class="flex h-full min-w-0 shrink-0 items-center">
+ <div class="portal-header-tools flex h-full min-w-0 shrink-0 items-center">
<template v-for="slot in rightSlots" :key="slot.name">
<slot :name="slot.name">
- <template v-if="slot.name === 'global-search'">
+ <template v-if="slot.name === 'refresh'">
+ <VbenIconButton aria-label="鍒锋柊褰撳墠椤甸潰" title="鍒锋柊褰撳墠椤甸潰" class="my-0 mr-1 rounded-md" @click="refresh">
+ <RotateCw class="size-4" />
+ </VbenIconButton>
+ </template>
+ <template v-else-if="slot.name === 'global-search'">
+ <div class="portal-header-search">
<GlobalSearch
+ :presentation="preferences.app.layout === 'mixed-nav' ? 'portal' : 'compact'"
:enable-shortcut-key="globalSearchShortcutKey"
:menus="accessStore.accessMenus"
- class="mr-1 sm:mr-4"
/>
+ </div>
</template>
+ <template v-else-if="slot.name === 'database-backup'">
+ <DatabaseBackupButton class="mr-1" />
+ </template>
<template v-else-if="slot.name === 'preferences'">
<PreferencesButton
class="mr-1"
--
Gitblit v1.9.3