当前位置: 首页 > news >正文

网站推广营销公司精品外贸网站 dedecms

网站推广营销公司,精品外贸网站 dedecms,广州门户网站制作公司,设计类型的网站el-menu el-badge 菜单加红点标识el-badge 一、el-menu组件menu/index.vuemenu/submenu.vue 二、获取/更新菜单红点标识 main.js引入全局组件/mixins全局混入 el-menu封装 一、el-menu组件 menu/index.vue 重点:定义 ref"menu",切换路由时…

el-menu + el-badge 菜单加红点标识el-badge

  • 一、el-menu组件
    • menu/index.vue
    • menu/submenu.vue
  • 二、获取/更新菜单红点标识


main.js引入全局组件/mixins全局混入
el-menu封装

一、el-menu组件

menu/index.vue

重点:定义 ref="menu",切换路由时调用 refreshs() 更新组件

<template><el-menu :unique-opened="true" :default-active="this.$store.state.menuData.menuActive" class="el-menu-vertical-demo" :background-color="backgroundColor" :text-color="textColor" :active-text-color="activeTextColor"><subMenu ref="menu" :menuList="sideNavMenu" :key="Math.random()"></subMenu></el-menu>
</template><script>
export default {name: "index",data() {return {backgroundColor: "#EAEEF6",textColor: "#3F434E",activeTextColor: "#2A60CC",// 菜单列表sideNavMenu: []}},mounted() { },methods: {async refreshs() {await this.getMenuBadge()this.$refs.menu.refreshs();}},watch: {$route(to, from) {this.refreshs()},},created() { },
}
</script>

menu/submenu.vue

重点:定义ref="subMenu",调用 refreshs() 更新组件,el-badge 展示标识未处理数据数量
<el-badge v-if="!!list.badgeNum" :value="list.badgeNum" :max="99"> </el-badge>

<template><div><div v-for="(list,index) in this.menuList" :key="index"><el-submenu v-if="!!list.children" :key="list.id" :index="String(list.id)"><template slot="title"><i class="menu_icon" :class="list.icon"></i><span slot="title">{{ list.name}}</span><el-badge v-if="!!list.badgeNum" :value="list.badgeNum" :max="99"> </el-badge><!-- <el-badge v-if="list.showBadge" value="new"> </el-badge> --></template><subMenu ref="subMenu" :menuList="list.children"></subMenu></el-submenu><el-menu-item v-else :index="list.path"><router-link :target="targeLink(list.path)?'_blank':''" :to="list.path"><i class="menu_icon" :class="list.icon"></i><span>{{list.name}}</span><el-badge v-if="!!list.badgeNum" :value="list.badgeNum" :max="99"> </el-badge></router-link></el-menu-item></div></div>
</template><script>
export default {name: "submenu",data() {return {}},props: {menuList: Array},mounted() { },methods: {targeLink(path) {if (path === '/aboutUs') {return true} else {return false}},refreshs() {this.$forceUpdate()if (this.$refs.subMenu) {this.$refs.subMenu.forEach(item => {item.refreshs()})}},},watch: {},created() { },
}
</script>

二、获取/更新菜单红点标识

调用 getMenuBadge() 获取/更新待办数据(红点显示数据)
api.js

import { getOneOrAllData } from '@/common/js/http'
// 菜单接口
export const getMenuListApi = p => getOneOrAllData('/getMenuListApi', p)
// 菜单角标数据接口
export const getMenuBadgeApi = {getMenuHomeBadgeApi: p => getOneOrAllData('/getMenuHomeBadgeApi ', p),//首页待办数量getMenuAboutBadgeApi: p => getOneOrAllData('/globalApi/home/examineConsumptionCount', p),//关于页核待办数量
};

mixins引入全局 public.js 文件

data() {return {// 登录人筛选后的菜单红点标识hasBadgeMenu: null,// 菜单红点标识定义badgeItem: {// 第一个参数是 hasBadgeMenu 下 obj 下标(pObjOrder)// 第二个参数是 obj 中 child 中的 obj 下标(cObjOrder)// 第三个参数是调用的接口'/basicDataReview': [0, 0, 'getMenuHomeBadgeApi'], // 首页待办数量'/publicDataReview': [0, 1, 'getMenuAboutBadgeApi'], // 关于页核待办数量},}
},
// 有权限的菜单
getMenuList() {// 调接口getMenuListApi().then(async res => {// 保存菜单数据到vuexthis.$store.commit("menuData/change_sideNavMenu", res.data);// 菜单红点标识await this.getMenuBadge()// 跳转路由this.jumpRouter(this.$store.state.menuData.sideNavMenu)})
},// 更新菜单红点标识
async getMenuBadge() {// 获取vuex中的菜单let sideMenu = this.$store.state.menuData.sideNavMenu// hasBadgeMenu 数据格式// hasBadgeMenu = [//   {//     item:{ },//     child:[//       { item: {}, api: 'getMenuHomeBadgeApi' },//       { item: {}, api: 'getMenuAboutBadgeApi' },//     ]//   }// ]// 过滤登录人所需菜单红点标识if (!this.hasBadgeMenu) {this.hasBadgeMenu = []sideMenu.forEach(item => {if (!!item.children) {item.children.forEach(cItem => {for (var key of Object.keys(this.badgeItem)) {if (cItem.path === key) {let pObjOrder = this.badgeItem[key][0]if (!this.hasBadgeMenu[pObjOrder]) {this.hasBadgeMenu[pObjOrder] = {}}if (!this.hasBadgeMenu[pObjOrder].child) {this.hasBadgeMenu[pObjOrder].child = []}let cObjOrder = this.badgeItem[key][1]if (!this.hasBadgeMenu[pObjOrder].child[cObjOrder]) {this.hasBadgeMenu[pObjOrder].child[cObjOrder] = {}}this.hasBadgeMenu[pObjOrder].child[cObjOrder].item = cItemthis.hasBadgeMenu[pObjOrder].child[cObjOrder].api = this.badgeItem[key][2]this.hasBadgeMenu[pObjOrder].item = item}}})}else { }})}// 调用红点信息接口for (let i in this.hasBadgeMenu) {if (this.hasBadgeMenu[i]) {for (let j in this.hasBadgeMenu[i].child)if (this.hasBadgeMenu[i].child[j]) {if (getMenuBadgeApi[this.hasBadgeMenu[i].child[j].api]) {await getMenuBadgeApi[this.hasBadgeMenu[i].child[j].api]().then(res => {this.hasBadgeMenu[i].child[j].item.badgeNum = res.data})} else {console.error('接口未定义');}}}}// 判断父级标识for (let j in this.hasBadgeMenu) {// this.hasBadgeMenu[j].item.showBadge = false;this.hasBadgeMenu[j].item.badgeNum = 0;for (let i in this.hasBadgeMenu[j].child) {if (!!this.hasBadgeMenu[j].child[i].item.badgeNum) {// this.hasBadgeMenu[j].item.showBadge = true;this.hasBadgeMenu[j].item.badgeNum += this.hasBadgeMenu[j].child[i].item.badgeNumbreak}}}this.$store.commit("menuData/change_sideNavMenu", sideMenu);
},
// 跳转路由
jumpRouter(menuList) {// 默认登录home页for (let i in menuList) {if (menuList[i].path === '/home') {this.$router.push({ path: menuList[i].path })break} else {this.$router.push({ path: menuList[0].path })}}
},

http://www.yayakq.cn/news/824157/

相关文章:

  • 凡科互动网站登录入口wordpress 响应式
  • 深圳集团网站建设湖南软件开发
  • 河南一般建一个网站需要多少钱俄罗斯网站后缀
  • 网站建设内部需求调查表网络空间安全考研学校排名
  • 为某网站做一则广告语做外国网站自媒体
  • 网站建设需要的技术路线网站建设流程公司
  • 上海建站价格教育网站建设网
  • 携程网站建设计划管理与进度控制2021半夜好用的网站
  • 中型网站建设cod建站系统
  • php网站开发都需要什么软件天河建设网站哪个好
  • 国内购物网站案例分析施工企业应当建立健全什么制度
  • 分类网站建设自己做个网站怎么做
  • 公司网站管理图片口碑营销网站
  • 移动网站建站阿里云个人域名备案流程
  • 企业网站建设指导思想研究网站开发意义
  • pinterest网站怎么进南宁网站建设推荐q479185700顶上
  • 做石材一般用哪些网站推销做网站赚钱流量
  • 舟山大昌建设集团网站淘宝网作图做网站
  • 珠珠宝宝网网站站建建设设自学网官网
  • 百度网站联盟推广使用WordPress默认主题
  • 成都网站制作是什么福州市城乡建设网站张麒蛰
  • 什么建设网站网站开发需要多长时间
  • 传奇网站制作网企业网站建设第一步
  • 龙海市住房和城乡建设局网站惠州网站建设培训
  • 上海市建设安装协会网站创意设计包装
  • 网站建设公众wordpress如何设置ssl
  • ftp 上传网站爬知乎文章做网站
  • 上海自聊自做网站wordpress 远程缓存
  • 济南新网站优化宁波好的seo外包公司
  • 广西省河池建设局网站负责网站建设推广