From a8a334b3c326610be70dd762978e8bf1a8766adc Mon Sep 17 00:00:00 2001 From: 三个三 <2029364173@qq.com> Date: 星期四, 02 十一月 2023 12:36:31 +0800 Subject: [PATCH] !50 add 新增 前端接入websocket接收消息 * add 新增 前端接入websocket接收消息 --- src/layout/components/Navbar.vue | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-) diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 3c0e45d..7818fd4 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -27,6 +27,21 @@ <svg-icon class-name="search-icon" icon-class="search" /> </div> </el-tooltip> + <!-- 娑堟伅 --> + <el-tooltip :content="$t('navbar.message')" effect="dark" placement="bottom"> + <div> + <el-popover placement="bottom" trigger="click" transition="el-zoom-in-top" :width="300" :persistent="false"> + <template #reference> + <el-badge :value="newNotice > 0 ? newNotice : ''" :max="99"> + <svg-icon icon-class="message" /> + </el-badge> + </template> + <template #default> + <notice></notice> + </template> + </el-popover> + </div> + </el-tooltip> <el-tooltip content="Github" effect="dark" placement="bottom"> <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" /> </el-tooltip> @@ -81,10 +96,14 @@ import { dynamicClear, dynamicTenant } from "@/api/system/tenant"; import { ComponentInternalInstance } from "vue"; import { TenantVO } from "@/api/types"; +import notice from './notice/index.vue'; +import useNoticeStore from '@/store/modules/notice'; const appStore = useAppStore(); const userStore = useUserStore(); const settingsStore = useSettingsStore(); +const noticeStore = storeToRefs(useNoticeStore()); +const newNotice = ref(<number>0); const { proxy } = getCurrentInstance() as ComponentInternalInstance; @@ -161,6 +180,11 @@ commandMap[command](); } } + +//鐢ㄦ繁搴︾洃鍚� 娑堟伅 +watch(() => noticeStore.state.value.notices, (newVal, oldVal) => { + newNotice.value = newVal.filter((item: any) => !item.read).length; +}, { deep: true }); </script> <style lang="scss" scoped> @@ -169,6 +193,10 @@ height:30px; } +:deep(.el-badge__content.is-fixed){ + top: 12px; +} + .flex { display: flex; } -- Gitblit v1.9.3