如何给侧边栏添加 Badge 计数标记

news2024/11/24 14:35:48

一、需求功能

给侧边菜单栏或及子菜单栏添加计数标记 el-badge

效果如下:

二、实现思路 

  • 结合 icon 图标渲染的思路,通过在layout 的 item.vue 中使用 vnodes.push 方法实现对 <el-badge /> 的渲染。
  • 在通过 Vuex 的状态管理将菜单栏需要的数据转递过来
  • 过滤不需要的菜单栏

layout目录结构

三、 具体实现步骤

1.渲染 <el-badge /> :src\layout\components\Sidebar\Item.vue

<script>
export default {
  name: 'MenuItem',
  functional: true,
  props: {
    icon: {
      type: String,
      default: ''
    },
    title: {
      type: String,
      default: ''
    },
    num: {
      type: Number,
      default: 5
    }
  },
  render(h, context) {
    const { icon, title,num } = context.props
    const vnodes = []
    
    if (icon) {
      vnodes.push(<svg-icon icon-class={icon}/>)
    }

    if (title) {
      if (title === '生产物资审批') {
        if (title.length > 5) {
          vnodes.push(<span slot='title' title={(title)}>{(title)}<el-badge value={(num)} class="item" id="elBadge" /></span>)
        } else {
          vnodes.push(<span slot='title'>{(title)}<el-badge value={(num)}  id="elBadge"/></span>)
        }
      }else{
        if (title.length > 5) {
          vnodes.push(<span slot='title' title={(title)}>{(title)}</span>)
        } else {
          vnodes.push(<span slot='title'>{(title)}</span>)
        }
      }
      
    }
    return vnodes
  }
}
</script>
<style>
  .item {
    margin-top: -20px;
    margin-right: 10px;
  }
</style>

2.num值由父页面传递

3.获取num方式:从缓存获取

4.在登录页面将mun值存入缓存中

登录页面:src\store\modules\user.js(这个根据项目结构来看)

localStorage.setItem("approve_num", response.total)

 5.当num数量动态减少时,侧边栏的数组需要跟着变化,可以用以下方法实现

//给红色提示赋值--start
          localStorage.setItem("approve_num", response.total)
          const elx = document.getElementById("elBadge").getElementsByClassName("el-badge__content el-badge__content--undefined")[0]
          elx.innerHTML = response.total
          //给红色提示赋值--end

 

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

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

相关文章

测试自动化面试题

Python python有哪些数据类型? Python支持多种数据类型&#xff0c;包括以下常见的数据类型&#xff1a; 数字类型&#xff1a;整数&#xff08;int&#xff09;、浮点数&#xff08;float&#xff09;和复数&#xff08;complex&#xff09;。 字符串类型&#xff1a;由字…

Mysql-MVCC 并发版本控制

参考链接&#xff1a;一文读懂MVCC实现原理_Nicolos_Z的博客-CSDN博客 1.总述&#xff1a; MVCC 主要是InnoDB解决数据库事务读写&#xff0c;导致的脏读、重复读问题的处理方法。通过快照读的方式&#xff0c;提高数据库并发查询的能力。 2.MVCC的实现 实现MVCC主要用到了…

【隐式动态求解】使用非线性纽马克方法的隐式动态求解研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码实现 &#x1f4a5;1 概述 非线性纽马克方法&#xff08;Nonlinear Newton-Raphson method&#xff09;是一种用于求解非线性方程组的数值方法&#xff0c;其中包含了隐式…

智慧景区综合解决方案52页,多媒体触控系统,顶层设计

导读&#xff1a;原文《智慧景区综合解决方案52页ppt》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式&#xff1a; 如需获取完整的电…

C++语法(26)--- 特殊类设计

C语法&#xff08;25&#xff09;--- 异常与智能指针_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/131537799?spm1001.2014.3001.5501 目录 1.特殊类设计 1.设计一个类&#xff0c;不能被拷贝 C98 C11 2.设计一个类&#xff0c;只能在堆上…

Volatile关键字详解

Volatile关键字详解 volatile的定义 这个引用JSR中的定义&#xff1a; The Java programming language allows threads to access shared variables (17.1). As a rule, to ensure that shared variables are consistently and reliably updated, a thread should ensure tha…

工业边缘计算为什么?

在工厂环境中使用边缘计算并不新鲜。可编程逻辑控制器&#xff08;PLC&#xff09;、微控制器、服务器和PC进行本地数据处理&#xff0c;甚至是微型数据中心都是边缘技术&#xff0c;已经在工厂系统中存在了几十年。在车间里看到的看板系统&#xff0c;打卡系统&#xff0c;历史…

【java实习评审】对热门小说更新时的聚集访问流量进行性能优化优化,有较好的设计

大家好&#xff0c;本篇文章分享一下【校招VIP】免费商业项目“推推”第一期书籍详情模块java同学的文档周最佳作品。该同学来自西安建筑科技大学软件工程专业。 本项目亮点难点&#xff1a;1 热门书籍在更新点的访问压力&#xff0c;2 书籍更新通知的及时性和有效性&#xff…

IP网络对讲求助模块

SV-6002 IP网络对讲求助模块是一款壁挂式一键求助对讲模块&#xff0c;具有10/100M以太网接口&#xff0c;其接收网络的音频数据&#xff0c;实时解码播放&#xff0c;还配置了麦克风输入和扬声器功放输出。SV-6002模块可实现对讲、广播、等功能&#xff0c;作为网络广播对讲系…

管理类联考——数学——趣味篇——可视化

Manim: 一个数学可视化的动画引擎 官网&#xff1a;https://3b1b.github.io/manim/index.html 借鉴&#xff1a;做出高逼格的数学动画——一起来学manim入门篇&#xff08;一&#xff09; 安装Manim软件 借鉴&#xff1a;Python视频制作引擎Manim安装教程 通过git bash运行…

探索NE555:一款经典的集成电路(超详细)

NE555是一款经典的集成电路&#xff0c;它在电子领域被广泛应用于定时器、脉冲发生器、电压控制振荡器等各种应用场景。它的设计简单、易于使用&#xff0c;并且具备稳定可靠的性能&#xff0c;因此深受电子爱好者和工程师的青睐。本篇博客将详细介绍NE555的原理、工作模式和常…

三、函数-2.字符串函数

一、常用函数 二、示例 -- 字符串拼接 Hello MySQL select concat(Hello, MySQL);-- 转为小写 hello select lower(Hello);-- 转为大写 HELLO select upper(Hello);-- 向左填充 &#xff01;&#xff01;&#xff01;01 select lpad(01, 5, &#xff01;);-- 向右填充 …

需求管理中最易忽视的6大重点

需求管理是产品经理的重点工作&#xff0c;如果无法有效进行需求管理&#xff0c;往往会引起需求变更、项目延期以及成本增加等问题。那么如何对需求进行高效管理&#xff0c;我们在需求管理中&#xff0c;往往最容易忽视的重点都有哪些&#xff1f; 1、重视项目整体管理计划 首…

redis高级篇 springboot+redis+bloomfilter实现过滤案例

一 bloomfilter的作用 1.1 作用 Bloomfilter&#xff1a;默认是有0组成bit数组和hash函数构成的数据结构&#xff0c;用来判断在海量数据中是否存在某个元素。 应用案例&#xff1a;解决缓存穿透。Bloomfilter放在redis前面&#xff0c;如果查询bf中没有则直接返回&#xff…

华为数通HCIP-OSPF路由计算

路由协议 作用&#xff1a;用于路由设备学习非直连路由&#xff1b; 动态路由协议&#xff1a;使路由设备自动学习到非直连路由&#xff1b; 分类&#xff1a; 按照算法分类&#xff1a; 1、距离矢量路由协议&#xff1b;&#xff08;RIP、BGP&#xff09; 只交互路由信息…

C语言每日一题——倒转字符

今天分享一道题目 编写一个函数 reverse_string(char * string)&#xff08;递归实现&#xff09; 实现&#xff1a;将参数字符串中的字符反向排列&#xff0c;不是逆序打印。 要求&#xff1a;不能使用C函数库中的字符串操作函数。 char arr[]"abcdef";将上面的代…

解决Unable to load authentication plugin ‘caching_sha2_password‘

连接Mysql8时报错&#xff1a; java.sql.SQLException: Unable to load authentication plugin caching_sha2_password.原因 不同版本的认证插件不同造成的 8版本前是&#xff1a;default_authentication_pluginmysql_native_password 8版本后是&#xff1a;default_authenti…

回调函数的使用:案例一:c语言简单信号与槽机制。

系列文章目录 文章目录 系列文章目录前言一、回调函数1.1 回调函数基本概念1.2 简单实现 二、代码案例1.代码示例 总结 前言 了解回调函数的基本概念&#xff0c;函数指针的使用、简单信号与槽的实现机制&#xff1b; 一、回调函数 1.1 回调函数基本概念 回调函数就是一个通…

禾匠榜店商城小程序“商家付款至零钱”最新提现接口文件(替换原企业付款到零钱接口)替换说明

禾匠榜店商城使用过的会员都知道提现接口一直使用企业付款到零钱&#xff0c;老商户还能使用&#xff0c;但新开通微信支付的商户只能申请商家付款至零钱。老接口已不适应原来的提现方式&#xff0c;该接口文件适用禾匠榜店商城小程序4.5.14版本“商家付款至零钱”最新接口&…

Rust vs Go:常用语法对比(九)

题图来自 Golang vs Rust - The Race to Better and Ultimate Programming Language 161. Multiply all the elements of a list Multiply all the elements of the list elements by a constant c 将list中的每个元素都乘以一个数 package mainimport ( "fmt")func …