在前端实现小铃铛上展示消息

news2024/11/26 9:52:41

在这里插入图片描述
在这里插入图片描述
点击铃铛显示如下消息框:
在这里插入图片描述
如果点击消息,可以实现消息从列表中移除,并从铃铛总数上进行扣减对应的已读消息数。

关于以上功能的实现方式:

 <!-- 铃铛位置 -->
          <i class="el-icon-bell" @click="showPopover = true">
            <span class="badge" v-if="notificationCount <= 99">{{ notificationCount }}</span>
            <span class="badge" v-else>99+</span>
          </i>

          <!-- 列表框 -->
          <!-- 虚化背景 -->
          <div v-if="showPopover" class="popover" @click="closePopover"></div>
            <div v-if="showPopover" class="popover-content">
              <!-- class="close-button"-->
              <el-button class="close-button" size="mini" @click="showPopover = false">&times;</el-button>
              <div style="line-height: 20px;">您的消息</div>
              <ul class="notification-list">
                <li v-for="item in notifications" :key="item.id" class="notification-item">
                  <div @click="clickLink(item)">

                      <span>
                        <b>{{ item.title }}</b>:


                          <el-tooltip :content ="item.content" effect="dark" placement="top-start">
                            <span>{{ getTruncatedContent(item.content) }}</span>
                          </el-tooltip>

                        </span>
                    </div>
                </li>
              </ul>
            </div>
          </div>
export default {
  name: "xxx",
  data() {
    return {
	  notificationCount: 99, // 初始化消息数量为0
      showPopover: false,//展示列表框
      notifications:[
        {
          id:1,
          title:"订单完成通知",
          content:"您好,您的DD234825205已经完成了,点击查看相关信息"
        },
        {
          id:2,
          title:"工单完成通知",
          content:"您好,您的GD93453872已经完成了,点击查看相关信息"
        },
        {
          id:3,
          title:"货物入库通知",
          content:"您好,入库流水号为3247942582,成功入库,点击查看详情"
        },
        {
          id:4,
          title:"订单完成通知",
          content:"您好,您的DD292342485已经完成了,点击查看相关信息"
        },
        {
          id:5,
          title:"发货通知",
          content:"您好,您的发货单#3358347520已经开始发货,点击查看详情"
        },
        {
          id:6,
          title:"物料出库通知",
          content:"您好,您的物料编号233847587528出库成功,点击查看详情"
        },
        {
          id:7,
          title:"miaow1",
          content:"xxxxxxxxxx"
        },
        {
          id:8,
          title:"miaow1",
          content:"xxxxxxxxxx"
        },
        {
          id:9,
          title:"miaow1",
          content:"xxxxxxxxxx"
        },
        {
          id:10,
          title:"miaow1",
          content:"xxxxxxxxxx"
        },
        {
          id:11,
          title:"miaow1",
          content:"xxxxxxxxxx"
        },
        {
          id:12,
          title:"miaow1",
          content:"xxxxxxxxxx"
        },
        {
          id:13,
          title:"miaow1",
          content:"xxxxxxxxxx"
        },
      ]
 	};
 },


//用来检测文本内容长度
  computed: {
    getTruncatedContent() {
      return (content) => {
        if (content.length > 8) {
          return content.slice(0, 8) + '...';
        }
        return content;
      };
    },
  },


methods :

	closePopover() {
      this.showPopover = false;
    },
    clickLink(notification){
      const index = this.notifications.indexOf(notification);
      if(index != -1){
        //在此获得相关路径,在用户点击相关信息的时候跳转链接
        //this.$router.push({path:"{{path}}"})
        this.notifications.splice(index,1);
      }
      if(this.notificationCount > 0){
        this.notificationCount --;
      }
      //然后跳转
    }

.bell-icon {
    position: relative;
    display: inline-block;
  }
.badge {
    // position: absolute;
    top: 100px;
    line-height:12px;
    right: 210px;
    background-color: white;
    color: red;
    border-radius: 50%;
    padding: 4px;
    font-size: 12px;
  }

.popover {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 999;
}

.popover-content {
  position: fixed;
  top: 56px;
  right: 120px;
  min-width: 220px;
  width: auto;
  max-height: 400px;
  background-color: white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  border-radius: 4px;
  padding: 10px;
  z-index: 1000;
  overflow-y: auto;
}

.notification-list {
  list-style: none;
  // padding: 0;
  font-size:15px;
  margin: 0;
  padding:0px;
  line-height:30px;

}

.notification-item {
  margin-bottom: 0px;
}

.notification-item h3 {
  margin: 0;
  font-size: 12px;
}

.notification-item p {
  margin: 0;
  font-size: 12px;
  color: #888;
}
.notification-item b {
  margin: 0;
  font-size: 13px;
  //我在想要不要将消息进行区分,比如绿色代表成功,橙色代表警告,红色代表错误
  color: green;
}
.notification-item span {
  margin: 0;
  font-size: 12px;
}

.close-button {
  position: absolute;
  top: 5px;
  right: 5px;
  border: none;
  background: none;
  font-size: 18px;
  // cursor: pointer;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

torch_geometric,scatter,sparse, cluster的安装失败

首先&#xff0c;对于自己的电脑环境是 已将安装3.9版本的python&#xff0c;成功安装11.6版本的cuda和1.31.1版本的torch。 现在想要安装torch_geometric&#xff0c; -需要先安装scatter&#xff0c;sparse&#xff0c; cluster。 直接安装失败&#xff0c;报错如下&…

小程序https证书

小程序通常需要与服务器进行数据交换&#xff0c;包括用户登录信息、个人资料、支付信息等敏感数据。如果不使用HTTPS&#xff0c;这些数据将以明文的方式在网络上传输&#xff0c;容易被恶意攻击者截获和窃取。HTTPS通过数据加密来解决这个问题&#xff0c;确保数据在传输过程…

make工具的介绍,包含的显示/隐晦规则/变量定义/文件指示,使用,.PHONY的介绍+原理

目录 make--自动化构建工具 引入 介绍 包含 显式规则 隐晦规则 变量定义 文件指示 注释 使用 test:test.c .PHONY 介绍 作用 示例 原理 示例 介绍 make--自动化构建工具 引入 在软件开发过程中&#xff0c;通常需要编译、链接和构建大量的源代码文件如果全…

FPGA 如何 固化程序到 FLASH中

1、导出Hardware 2、导出bit文件 3、打开SDK 4、 点击Ok 5、创建工程 6、 输入工程名称&#xff1a;guhua 7、选择 Zynq FSBL 8、单击 guhua、然后点击 build 点击&#xff1a;build all 9、 右键之后&#xff0c;点击&#xff1a;Creat Boot Image 10、点击 Cr…

栈及其栈的模拟实现和使用

1. 栈(Stack) 1.1 概念 栈 &#xff1a;一种特殊的线性表&#xff0c;其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO &#xff08; Last In First Out &#xff09;的原则…

【计算机网络】计算机网络中的基本概念

文章目录 局域网LAN基于网线直连基于集线器组建基于交换机组建基于交换机和路由器组建 广域网WANIP地址端口号协议为什么要有协议知名协议的默认端口 五元组协议分层TCP/IP五层模型封装和分用 网络互连就是将多台计算机连接在一起&#xff0c;完成数据共享。数据共享本质是网络…

echarts实现圆形进度图

echarts实现圆形进度图 效果图 话不多说&#xff0c;代码如下 option {title: {text: 本月功率因数,textStyle: {color: #666666,fontSize: 14},subtext: 0.95,subtextStyle: {color: #161616,fontSize:30,fontWeight:700},itemGap: 15, // 主副标题距离left: center,top:…

竞赛知识点11【线段树】

文章目录 一、概念二、基本操作2.1、建树2.2、区间询问操作2.3、单点修改2.4、区间修改一、概念 线段树是用一种树状结构来存储一个连续区间的信息的数据结构。 它主要用于处理一段连续区间的插入,查找,统计,查询等操作。 复杂度: 设区间长度是 n n n,所有操作的复杂度是 l…

Web渗透编程语言基础

Web渗透初学者JavaScript专栏汇总-CSDN博客 Web渗透Java初学者文章汇总-CSDN博客 一 Web渗透PHP语言基础 PHP 教程 | 菜鸟教程 (runoob.com) 一 PHP 语言的介绍 PHP是一种开源的服务器端脚本语言,它被广泛用于Web开发领域。PHP可以与HTML结合使用,创建动态网页。 PHP的特…

在Photoshop中如何校正倾斜的图片

在Photoshop中如何校正倾斜的图片呢&#xff1f;今天就教大家如何操作。 将需要操作的图片拉到PS软件中&#xff0c;自动形成项目。 点击上方“滤镜”中的“镜头校正”。 进入“镜头校正”窗口&#xff0c;点击左侧的“拉直工具”。文章源自设计学徒自学网-http://www.sx1c.co…

Shell module

案例 案例1概述 #!/bin/bash if [ -z "${NEXUS_ID}" ] || [ -z "${NEXUS_VERSION}" ]; thenecho "the length of NEXUS_ID or NEXUS_VERSION is zero"echo "NEXUS_ID: ${NEXUS_ID}"echo "NEXUS_VERSION: ${NEXUS_VERSION}"…

CentOS 搭建 Hadoop3 高可用集群

Hadoop FullyDistributed Mode 完全分布式 spark101spark102spark103192.168.171.101192.168.171.102192.168.171.103namenodenamenodejournalnodejournalnodejournalnodedatanodedatanodedatanodenodemanagernodemanagernodemanagerrecource managerrecource managerjob hist…

2. 网络之网络编程

网络编程 文章目录 网络编程1. UDP1.1 DatagramSocket1.1.1 DatagramSocket 构造方法1.1.2 DatagramSocket 方法&#xff1a; 1.2 DatagramPacket1.2.1 DatagramPacket构造方法1.2.2 DaragramPacket方法1.2.3InetSocketAddress API 1.3 UDP回显服务器1.3.1 框架结构1.3.2 读取请…

USART HMI串口屏+GPS模块显示时间和经纬度

USART HMI串口屏GPS模块显示时间和经纬度 &#x1f4cd;相关篇《基于u-box GPS模块通过串口指令调整输出信息》 &#x1f4cb;在不使用其他单片机做数据中转处理情况下&#xff0c;利用USART HMI串口屏主动解析模式&#xff0c;来接收并解析GPS模块数据并显示&#xff0c;功能包…

Android 如何在Android studio中快速创建raw和assets文件夹

一 方案 1. 创建raw文件夹 切成project浏览模式——>找到res文件粘贴要放入raw文件夹下的文件。 当然此时raw文件还没有&#xff0c;直接在右侧输入框中出现的路径~\res后面加上\raw即可。 2. 创建assets文件夹 同理在main文件夹下粘贴要放入assets文件夹的文件&#xff0…

【深度学习基础】专业术语汇总(欠拟合和过拟合、泛化能力与迁移学习、调参和超参数、训练集、测试集和验证集)

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

【高光谱与多光谱:空间-光谱双优化模型驱动】

A Spatial–Spectral Dual-Optimization Model-Driven Deep Network for Hyperspectral and Multispectral Image Fusion &#xff08;一种用于高光谱与多光谱图像融合的空间-光谱双优化模型驱动深度网络&#xff09; 深度学习&#xff0c;特别是卷积神经网络&#xff08;CNN…

【算法练习Day35】01背包问题分割等和子集

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 01背包问题分割等和子集总结…

C语言从入门到精通之【编译过程】

&#xff01;&#xff01;&#xff01;本文内容毕业生面试必问哈。 编译过程 编译包含四个阶段&#xff0c;预处理&#xff08;Preprocessing&#xff09;、编译&#xff08;Compilation&#xff09;、汇编&#xff08;Assembly&#xff09;、链接&#xff08;Linking&#x…

JAVA 实现PDF转图片(spire.pdf.free版)

1.引入jar包 导入方法1&#xff1a; 手动引入。将Free Spire.PDF for Java下载到本地&#xff0c;解压&#xff0c;找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面&#xff0c;将本地路径中的jar文件引入Java程序&#xff1a; 导入方法2&#xff1a;如果您想通过…