vue-element-admin 侧边栏计数标记

本文介绍如何在Vue项目中实现侧边栏的动态计数器功能,包括利用Vuex存储后台数据、条件渲染计数器及在不同场景下更新数据的方法。

效果图

在这里插入图片描述

具体步骤:

1、store/modules下新建文件apply.js(根据具体业务命名),将后台拉取的数据通过vuex存储
例:

import { searchSealApply } from '@/api/seal'

const state = {
  applyTotal: undefined
}

const mutations = {
  SET_APPLY_TOTAL: (state, applyTotal) => {
    state.applyTotal = applyTotal
  }
}

const actions = {
  // 根据自己实际情况获取后台数据
  getApply({ commit, state }) {
    return new Promise((resolve, reject) => {
      const req = {
        statusList: [1]
      }
      searchSealApply(1, 1, req).then(response => {
        const data = response.data.total

		// 将获取的数据存储
        commit('SET_APPLY_TOTAL', data)

        resolve()
      }).catch(error => {
        reject(error)
      })
    })
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

store/getters.js中声明

const getters = {
...
applyTotal: state => state.apply.applyTotal,
...
}

2、layout/components/Sidebar/item.vue中修改渲染

 if (title) {
 	  // 要加计数器的侧边栏名称
      if (title === '我的申请') {
        // 判断计数器的数如果不存在或者为0则不显示
        if (store.getters.applyTotal !== undefined && store.getters.applyTotal !== 0) {
          const num = store.getters.applyTotal
          vnodes.push(
            <span slot='title'>
              {(title)}
              // 注意这里不要使用el-badge标签,要使用html原生标签
              <sup class='el-badge__content el-badge__content--undefined'>{(num)}</sup>
            </span>
          )
        } else {
          vnodes.push(<span slot='title'>{(title)}</span>)
        }
      } else {
        vnodes.push(<span slot='title'>{(title)}</span>)
      }
    }

别忘记引入store

import store from '@/store'

3、在合适的地方获取后台数据
如果需要数据更新,则可以在src/permission.js中,每次路由跳转的时候去获取一次
例:

if (hasToken) {
    if (to.path === '/user/login') {
      // if is logged in, redirect to the home page
      next({ path: '/' })
      NProgress.done()
    } else {
    ...
    // 在这里取拉取数据
    await store.dispatch('apply/getApply')
   	...
    }
}

如果只需要拉取一次,则在login后获取一次即可。
当然你也可以在每次用户操作完页面重新拉取数据的时候,更新applyTotal的全局状态,这样你的侧边栏计数标记就是动态的。


参考文档:http://t.csdn.cn/JSw4y


如有错误,请指正。

### 回答1: vue-element-admin是一个基于Vue.jselement-ui的后台管理系统模板。侧边栏是该模板中的一个功能,用于显示网站的导航菜单。通常位于网页的左侧,可以通过点击菜单项来导航到不同的页面。 ### 回答2: vue-element-admin是一套基于Vue.js的后台管理模板,它包含了丰富的组件、模板、插件和页面,能够快速地搭建出一个可定制化的、美观且功能强大的后台管理系统。其中,侧边栏vue-element-admin非常重要的一部分,它能够帮助我们快速地定位不同模块、页面和功能。 vue-element-admin侧边栏由多个菜单项组成,每个菜单项都包含了一个图标和一个文字标签。默认情况下,侧边栏是收缩状态的,只显示图标,当鼠标悬停在上面时会出现文字标签。点击菜单项会展开对应的子菜单,展开的子菜单也包含了多个菜单项,通过这样的多级菜单结构,我们可以方便地进行导航和功能定位。 vue-element-admin侧边栏是可配置的,我们可以通过修改配置文件来自定义菜单项、图标和文字,也可以通过代码控制侧边栏的展开和收缩。此外,vue-element-admin还支持根据用户权限动态生成菜单项,这样我们可以根据用户的角色和权限来动态地展示和隐藏菜单项,保证后台管理系统具有更加安全和灵活的控制能力。 总之,vue-element-admin侧边栏是非常重要的一部分,它是后台管理系统的导航和功能定位中不可或缺的一环。通过灵活配置和动态生成,我们可以打造出一个功能强大、风格美观的后台管理系统。 ### 回答3: vue-element-admin 是一个基于 Vue.js 的开源项目,是一个企业级后台管理系统模板,使用了 Element UI 进行开发。在 vue-element-admin 中,侧边栏是主要的导航菜单之一,它可以方便地帮助用户浏览不同的功能模块,也能够让用户快速找到自己需要的信息。 侧边栏的实现方式主要有两种:静态菜单和动态菜单。静态侧边栏是指菜单的内容在代码部署的时候就已经确定好了,而动态侧边栏则是在运行时根据用户角色、权限等信息动态生成的。在 vue-element-admin 中,侧边栏采用的是动态菜单的方式,这样可以最大程度地提高系统的灵活性、扩展性和安全性。 在 vue-element-admin 中,侧边栏的数据是存储在菜单配置文件中的,这个文件包括了菜单的名称、路由、图标、隐藏状态、子菜单等信息。菜单配置文件通过异步请求和后端接口进行交互,从而实现了动态生成侧边栏的功能。在 vue-element-admin 中,侧边栏的显示和隐藏是通过监听路由变化实现的,当用户点击某个菜单项时,就会切换到对应的路由,并将侧边栏中该菜单项高亮显示。 总之,侧边栏是一个非常重要的功能模块,在 vue-element-admin 中得到了很好的实现和应用,为用户提供了方便的导航和操作方式。如果使用 vue-element-admin 进行开发,则可以直接继承、扩展侧边栏功能,从而快速开发高性能、低成本的企业级后台管理系统。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值