赞
踩
由于我们公司项目最近有个需求,项目使用element-admin模板,需要点击更改菜单栏的icon图片。网上找了很久都没有找到解决办法,最后决定在路由中设置两个icon如图:
然后在SlidebarItem.vue中,根据路由的名称,和当前路由的icon是否和路由中的icon比较,如果相同则显示icon1的图片
以下是我的源码
<div v-if="!item.hidden">
<template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
<app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)">
<el-menu-item v-if="item.meta.icon1" :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
<item v-if=" ($route.name === item.name&& $route.meta.icon === onlyOneChild.meta.icon) || ($route.name === item.name &&$route.meta.icon === (item.meta&&item.meta.icon))"
:icon="onlyOneChild.meta.icon1||(item.meta.icon1)" :title="$t(onlyOneChild.meta.title)" />
<item v-else :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="$t(onlyOneChild.meta.title)" />
</el-menu-item>
<el-menu-item v-else :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
<item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="$t(onlyOneChild.meta.title)" />
</el-menu-item>
</app-link>
</template>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。