From bc07cf1a936795d229a0f51d24cd2032580db542 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 20 一月 2026 16:34:51 +0800
Subject: [PATCH] 湟水峡 1.头部修改
---
src/layout/components/Navbar.vue | 94 +++++++++++++++++++++++++++++++---------------
1 files changed, 63 insertions(+), 31 deletions(-)
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 633024f..8d563c7 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -6,6 +6,30 @@
<breadcrumb v-if="!settingsStore.topNav" id="breadcrumb-container" class="breadcrumb-container" />
</div>
<!-- <top-nav v-if="settingsStore.topNav" id="topmenu-container" class="topmenu-container" />-->
+ <div class="right-menu">
+ <!-- 娑堟伅閫氱煡 -->
+<!-- <el-popover-->
+<!-- v-model:visible="notificationVisible"-->
+<!-- :width="500"-->
+<!-- placement="bottom-end"-->
+<!-- trigger="click"-->
+<!-- :popper-options="{ modifiers: [{ name: 'offset', options: { offset: [0, 10] } }] }"-->
+<!-- popper-class="notification-popover"-->
+<!-- >-->
+<!-- <template #reference>-->
+<!-- <div class="notification-container right-menu-item hover-effect">-->
+<!-- <el-badge :value="unreadCount" :hidden="unreadCount === 0" class="notification-badge">-->
+<!-- <el-icon :size="20" style="cursor: pointer;">-->
+<!-- <Bell />-->
+<!-- </el-icon>-->
+<!-- </el-badge>-->
+<!-- </div>-->
+<!-- </template>-->
+<!-- <NotificationCenter-->
+<!-- @unreadCountChange="handleUnreadCountChange"-->
+<!-- ref="notificationCenterRef"-->
+<!-- />-->
+<!-- </el-popover>-->
<div class="avatar-container">
<el-dropdown @command="handleCommand" class="right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
@@ -28,10 +52,12 @@
</el-dropdown>
</div>
</div>
+ </div>
</template>
<script setup>
import { ElMessageBox } from 'element-plus'
+import { Bell } from '@element-plus/icons-vue'
import Breadcrumb from '@/components/Breadcrumb'
import TopNav from '@/components/TopNav'
import Hamburger from '@/components/Hamburger'
@@ -40,6 +66,7 @@
import HeaderSearch from '@/components/HeaderSearch'
import RuoYiGit from '@/components/RuoYi/Git'
import RuoYiDoc from '@/components/RuoYi/Doc'
+// import NotificationCenter from './NotificationCenter/index.vue'
import useAppStore from '@/store/modules/app'
import useUserStore from '@/store/modules/user'
import useSettingsStore from '@/store/modules/settings'
@@ -47,7 +74,9 @@
const appStore = useAppStore()
const userStore = useUserStore()
const settingsStore = useSettingsStore()
-const factoryList = ref([])
+const notificationVisible = ref(false)
+const notificationCenterRef = ref(null)
+const unreadCount = ref(0)
function toggleSideBar() {
appStore.toggleSideBar()
}
@@ -90,39 +119,42 @@
settingsStore.toggleTheme()
}
-// function getUserLoginFacotryList() {
-// if (userStore.id) {
-// userLoginFacotryList({ userId: userStore.id }).then(res => {
-// console.log('res', res)
-// factoryList.value = res.data
-// })
-// } else {
-// factoryList.value = []
-// }
-// }
-
-function handleFactoryChange(command) {
- console.log('command', command)
- handleLogin(command.deptId);
+// 娑堟伅閫氱煡鐩稿叧
+function handleUnreadCountChange(count) {
+ unreadCount.value = count
}
-function handleLogin(currentFatoryId) {
- const loginForm = {
- username: Cookies.get("username"),
- password: Cookies.get("password") === undefined ? null : decrypt(Cookies.get("password")),
- currentFatoryId: currentFatoryId
- }
- userStore.loginCheckFactory(loginForm).then(res => {
- forceReload();
- }).catch((err) => {
- console.log(err)
+// 缁勪欢鎸傝浇鏃跺姞杞芥湭璇绘暟閲忓拰瀹氭椂鍒锋柊
+let unreadCountTimer = null
+onMounted(() => {
+ // 寤惰繜鍔犺浇锛岀‘淇濈粍浠跺凡娓叉煋
+ nextTick(() => {
+ if (notificationCenterRef.value) {
+ notificationCenterRef.value.loadUnreadCount()
+ }
})
-}
-function forceReload() {
- const currentUrl = window.location.origin + window.location.pathname;
- const timestamp = new Date().getTime();
- window.location.href = `${currentUrl}?reload=${timestamp}`;
-}
+ // 瀹氭椂鍒锋柊鏈鏁伴噺锛堟瘡30绉掞級
+ unreadCountTimer = setInterval(() => {
+ if (notificationCenterRef.value) {
+ notificationCenterRef.value.loadUnreadCount()
+ }
+ }, 30000)
+})
+
+// 鐩戝惉 popover 鏄剧ず鐘舵�侊紝鎵撳紑鏃跺姞杞芥秷鎭垪琛�
+watch(notificationVisible, (val) => {
+ if (val && notificationCenterRef.value) {
+ nextTick(() => {
+ notificationCenterRef.value.loadMessages()
+ })
+ }
+})
+
+onUnmounted(() => {
+ if (unreadCountTimer) {
+ clearInterval(unreadCountTimer)
+ }
+})
</script>
<style lang='scss' scoped>
--
Gitblit v1.9.3