From 52b3b54470ecc3c80d816a9891b651ce7f5a0eaa Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期六, 11 十月 2025 13:39:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_NEW' into dev_NEW
---
src/layout/components/Navbar.vue | 275 +++++++++++++++++++++++++++++++-----------------------
1 files changed, 157 insertions(+), 118 deletions(-)
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 42f14c1..412dfce 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -1,11 +1,13 @@
<template>
<div class="navbar">
-<!-- <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />-->
-<!-- <breadcrumb v-if="!settingsStore.topNav" id="breadcrumb-container" class="breadcrumb-container" />-->
-<!-- <top-nav v-if="settingsStore.topNav" id="topmenu-container" class="topmenu-container" />-->
- <div class="logo">
- <img src="@/assets/logo/logo.png" alt=""/>
- </div>
+ <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
+ <breadcrumb v-if="!settingsStore.topNav" id="breadcrumb-container" class="breadcrumb-container" />
+<!-- <div v-if="sidebar.hide">-->
+<!-- <top-nav id="topmenu-container" class="topmenu-container" />-->
+<!-- </div>-->
+<!-- <div class="logo" v-if="!sidebar.hide">-->
+<!-- <img src="@/assets/logo/logo.png" alt=""/>-->
+<!-- </div>-->
<div class="right-menu">
<template v-if="appStore.device !== 'mobile'">
<header-search id="header-search" class="right-menu-item" />
@@ -21,6 +23,9 @@
<router-link to="/user/profile">
<el-dropdown-item>涓汉涓績</el-dropdown-item>
</router-link>
+ <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">
+ <span>甯冨眬璁剧疆</span>
+ </el-dropdown-item>
<el-dropdown-item divided command="logout">
<span>閫�鍑虹櫥褰�</span>
</el-dropdown-item>
@@ -35,6 +40,7 @@
</template>
<script setup>
+import {useWindowSize} from '@vueuse/core'
import { ElMessageBox } from 'element-plus'
import Breadcrumb from '@/components/Breadcrumb'
import TopNav from '@/components/TopNav'
@@ -47,11 +53,47 @@
import useAppStore from '@/store/modules/app'
import useUserStore from '@/store/modules/user'
import useSettingsStore from '@/store/modules/settings'
+const sidebar = computed(() => useAppStore().sidebar)
+const device = computed(() => useAppStore().device)
+import Sidebar from "@/layout/components/Sidebar/index.vue";
const appStore = useAppStore()
const userStore = useUserStore()
const settingsStore = useSettingsStore()
+const isShowTop = ref(false)
+const { width, height } = useWindowSize()
+const WIDTH = 992 // refer to Bootstrap's responsive design
+
+watch(() => device.value, () => {
+ if (device.value === 'mobile' && sidebar.value.opened) {
+ useAppStore().closeSideBar({ withoutAnimation: false })
+ }
+})
+
+watchEffect(() => {
+ if (width.value - 1 < WIDTH) {
+ useAppStore().toggleDevice('mobile')
+ appStore.toggleSideBarHide(true)
+ useAppStore().closeSideBar({ withoutAnimation: true })
+ } else {
+ useAppStore().toggleDevice('desktop')
+ appStore.toggleSideBarHide(false)
+ }
+})
+// 鏍规嵁绐楀彛瀹藉害璁剧疆 isShowTop
+// const handleResize = () => {
+// settingsStore.topNav = !(window.innerWidth < 992)
+// }
+//
+// onMounted(() => {
+// handleResize() // 鍒濆鍒ゆ柇涓�娆�
+// window.addEventListener('resize', handleResize)
+// })
+//
+// onUnmounted(() => {
+// window.removeEventListener('resize', handleResize)
+// })
function toggleSideBar() {
appStore.toggleSideBar()
}
@@ -93,117 +135,114 @@
<style lang='scss' scoped>
.navbar {
- height: 50px;
- overflow: hidden;
- position: fixed; /* 灏嗗ご閮ㄥ浐瀹� */
- top: 0; /* 鍦ㄩ《閮ㄥ浐瀹� */
- width: 100%; /* 瀹藉害100%锛岃鐩栨暣涓鍙� */
- //background-color: #f8f9fa; /* 璁剧疆鑳屾櫙棰滆壊锛屼互渚挎洿鏄庢樉鍦扮湅鍒版晥鏋� */
- z-index: 1000; /* 纭繚澶撮儴鍦ㄥ叾浠栧唴瀹逛箣涓� */
- background: var(--navbar-bg);
- box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
- display: flex;
- justify-content: space-between;
- padding: 0 20px;
-
- .logo {
- height: 50px;
- line-height: 50px;
- img {
- cursor: pointer;
- width: 146px;
- height: 46px;
- }
- }
-
- .breadcrumb-container {
- float: left;
- }
-
- .topmenu-container {
- position: absolute;
- left: 50px;
- }
-
- .errLog-container {
- display: inline-block;
- vertical-align: top;
- }
-
- .right-menu {
- float: right;
- height: 100%;
- line-height: 50px;
- display: flex;
-
- &:focus {
- outline: none;
- }
-
- .right-menu-item {
- display: inline-block;
- padding: 0 8px;
- height: 100%;
- font-size: 18px;
- color: #5a5e66;
- vertical-align: text-bottom;
-
- &.hover-effect {
- cursor: pointer;
- transition: background 0.3s;
-
- &:hover {
- background: rgba(0, 0, 0, 0.025);
- }
- }
-
- &.theme-switch-wrapper {
- display: flex;
- align-items: center;
-
- svg {
- transition: transform 0.3s;
-
- &:hover {
- transform: scale(1.15);
- }
- }
- }
- }
-
- .avatar-container {
- margin-right: 0px;
- padding-right: 0px;
-
- .avatar-wrapper {
- margin-top: 10px;
- right: 5px;
- position: relative;
-
- .user-avatar {
- cursor: pointer;
- width: 30px;
- height: 30px;
- border-radius: 50%;
- }
-
- .user-nickname{
- position: relative;
- left: 5px;
- bottom: 10px;
- font-size: 14px;
- font-weight: bold;
- }
-
- i {
- cursor: pointer;
- position: absolute;
- right: -20px;
- top: 25px;
- font-size: 12px;
- }
- }
- }
- }
+ height: 50px;
+ overflow: hidden;
+ position: relative;
+ background: var(--navbar-bg);
+ box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
+
+ .hamburger-container {
+ line-height: 46px;
+ height: 100%;
+ float: left;
+ cursor: pointer;
+ transition: background 0.3s;
+ -webkit-tap-highlight-color: transparent;
+
+ &:hover {
+ background: rgba(0, 0, 0, 0.025);
+ }
+ }
+
+ .breadcrumb-container {
+ float: left;
+ }
+
+ .topmenu-container {
+ position: absolute;
+ left: 50px;
+ }
+
+ .errLog-container {
+ display: inline-block;
+ vertical-align: top;
+ }
+
+ .right-menu {
+ float: right;
+ height: 100%;
+ line-height: 50px;
+ display: flex;
+ margin-right: 30px;
+
+ &:focus {
+ outline: none;
+ }
+
+ .right-menu-item {
+ display: inline-block;
+ padding: 0 8px;
+ height: 100%;
+ font-size: 18px;
+ color: #5a5e66;
+ vertical-align: text-bottom;
+
+ &.hover-effect {
+ cursor: pointer;
+ transition: background 0.3s;
+
+ &:hover {
+ background: rgba(0, 0, 0, 0.025);
+ }
+ }
+
+ &.theme-switch-wrapper {
+ display: flex;
+ align-items: center;
+
+ svg {
+ transition: transform 0.3s;
+
+ &:hover {
+ transform: scale(1.15);
+ }
+ }
+ }
+ }
+
+ .avatar-container {
+ margin-right: 0px;
+ padding-right: 0px;
+
+ .avatar-wrapper {
+ margin-top: 10px;
+ right: 5px;
+ position: relative;
+
+ .user-avatar {
+ cursor: pointer;
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ }
+
+ .user-nickname{
+ position: relative;
+ left: 5px;
+ bottom: 10px;
+ font-size: 14px;
+ font-weight: bold;
+ }
+
+ i {
+ cursor: pointer;
+ position: absolute;
+ right: -20px;
+ top: 25px;
+ font-size: 12px;
+ }
+ }
+ }
+ }
}
</style>
--
Gitblit v1.9.3