一、需求功能

需求说明:给 element-admin 的侧边菜单栏或及子菜单栏添加计数标记 el-badge

  • 需求视图如下:

二、实现思路

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

三、 具体实现步骤

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

<script>
export default {props: {icon: {type: String,default: ''},title: {type: String,default: ''}},render(h, context) {const { icon, title } = context.propsconst vnodes = []// icon图标if (icon) {```过滤```vnodes.push(<svg-icon icon-class={icon} />)}// 侧边菜单栏标题if (title) {vnodes.push(<span slot='title'>{(title)}</span>)}return vnodes}
}
</script>

2.状态管理 Store 参数获取

  • Store – commit
    通过 element-admin 的 permission.js 权限文件实现参数的 commit (根据自己项目的具体菜单权限,灵活变通)
···
// 找到项目的 menu 权限、在逻辑中添加接口请求、并提交给store// 我的申请
const { applyData} = await request({ url, data})
store.commit('SET_MYAPPLYTOTAL', applyData.length)// 我的审核
const { approveData} = await request({ url, data})
store.commit('SET_AUDIOTOTAL', approveData.length)···
  • Store – mutations
    接收commit 参数,并给定义的 state 参数赋值
const state = {audioTotal: 0, // 审核myApplyTotal: 0// 申请
}const mutations = {SET_AUDIOTOTAL(state, data) {state.audioTotal = data},SET_MYAPPLYTOTAL(state, data) {state.myApplyTotal = data}
}

3.在渲染文件item.vue 中使用 store 参数

<script>
import store from '@/store'
export default {name: 'MenuItem',functional: true,props: {icon: {type: String,default: ''},title: {type: String,default: ''}},render(h, context) {const { icon, title } = context.propsconst vnodes = []if (title) {if (title === '我的审核') {vnodes.push(<span slot='title'>{title}<el-badge value={store.state.user.audioTotal} /></span>)}```其他菜单过滤同理```else {vnodes.push(<span slot='title'>{title}</span>)}}return vnodes}
}
</script>

结语

初心:希望我的方案能给你一点思路
期盼:如果你有更好的解决方法,期盼你能分享到评论区

【Vue element-admin 如何给侧边栏添加 Badge 计数标记 】相关推荐

  1. Vue Element Admin 使用mock模块模拟数据

    Mock 数据是前端开发过程中必不可少的一环,是分离前后端开发的关键链路.通过预先跟服务器端约定好的接口,模拟请求数据甚至逻辑,能够让前端开发更加独立自主,不会被服务端的开发所阻塞. vue-elem ...

  2. vue+element+admin(初始化项目)

    2022.10.17我接触到了vue+element+admin的使用,首先要安装node.jshttps://nodejs.org/zh-cn/download/.和githttps://git-s ...

  3. vue element admin登录方式切换(密码登录或短信登录)

    显示结果: 具体代码可以根据vue element admin源码进行更改,下面是页面代码 <el-form ref="loginForm" :model="log ...

  4. Vue Element Admin 添加侧边栏以及他的页面

    1. 在 /src/views/ 下添加需要的页面 2. 配置路由器 router 中的路由表 routes,分为 constantRoutes 和 asyncRoutes. 将路由的配置信息添加进路 ...

  5. 后端使用SpringBoot和Jwt工具与Redis数据库+前端Vue Element Admin实现用户携带token的登录功能案例

    登录功能描述: 前端输入对应的用户信息 ,在用户输入邮箱后 点击发送按钮给邮箱发送验证码,拿取到验证填完之后,点击登录按钮给后端发送请求 ,后端接收到请求之后 ,第一步校验验证码,第二步校验用户名和密 ...

  6. Vue Element Admin 用mock模块模拟数据

    步骤简单 一  在 src/api/charts 中添加接口 , 方法名为 getindexMock  import request from '@/utils/request'export func ...

  7. vue element admin中发送请求和设置loading效果

    需求:在表格数据加载完成前进入loading显示数据正在加载,数据加载完成后取消loading效果,axios的超时处理和异常的处理之后进行取消loading效果. 小编接下来就根据这个这个需求进行分 ...

  8. vue element 实现table的自动添加列

    前提 由于每个同学的考试的科目可能不一样,但是老师统计的时候需要获取到每个同学的科目分数.结果如下 后端返回的数据格式如下 [{"id":1,"sid":&qu ...

  9. Vue + Element UI——侧边栏LOGO设计DEMO

    GitHub https://github.com/PanJiaChen/vue-element-admin DEMO https://panjiachen.github.io/vue-element ...

最新文章

  1. 迁移学习简介(transfer learning)
  2. minimum-depth-of-binary-tree (搜索)
  3. 评估模型如何建立_建立和评估分类ML模型
  4. C#:解决WCF中服务引用 自动生成代码不全的问题。
  5. PMP项目管理认证体系
  6. SQL server2008 安装教程
  7. 关于IP转换器无法正常启动的问题
  8. CentOs7中安装python模块psycopg2,报错Error: pg_config executable not found.
  9. 路由器重温——BGP路由-1
  10. 5月语言排行榜:R 跌出前二十,Python 紧咬 C++
  11. Unity-黑暗之魂复刻-翻滚、后跳功能
  12. cv2.warpAffine 参数详解
  13. elasticsearch的.security-7索引崩溃恢复笔记
  14. c语言菜单 键盘,三、Windows键盘快捷键—启用菜单项
  15. Android Instant App 介绍
  16. 巨控PLC远程下载调试最新方案
  17. 昆明话呢四级考试试题
  18. linux 时区设置 美国西部,Linux下修改系统时区
  19. SQL Server 2012 修改数据库属性
  20. TCPUDP相关介绍

热门文章

  1. zbb20180619 mysql windows环境下MySQL重启的命令行说明
  2. 交直流线性电源行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  3. 第五届蓝帽杯初赛:冬奥会_is_coming
  4. ADSL MODEM用户名和密码大全
  5. 每日加瓦,终成栋房3
  6. 广州计算机专业分数线,广东人工智能专业分数线多少
  7. 笔迹识别(一 笔迹特征)
  8. 好好说话之ret2shellcode
  9. JAVA毕设项目九宫格日志网站(java+VUE+Mybatis+Maven+Mysql)
  10. memcached 注册服务器,Memcached深入剖析(一)—Memcached服务器安装