vue-element-admin 动态切换主题色,menu 选中文本颜色不统一

2q5ifsrm  于 3个月前  发布在  其他
关注(0)|答案(1)|浏览(42)

/src/layout/Sidebar/index.vue 第11行 :active-text-color="variables.menuActiveText"
查看源码

<li role="menuitem" tabindex="-1" class="el-menu-item is-active" style="padding-left: 40px; color: rgb(242, 103, 110); background-color: rgb(0, 21, 41);">
</li>
.el-menu-item.is-active {
  color: #F2676E; // TODO:被覆盖
}

此时样式 .el-menu-item.is-active 已经更改(是正确的),但element-ui源码menu菜单li标签上是根据 :active-text-color 来决定选中颜色是啥, 被行内样式覆盖了。

<li class="el-menu-item"
    role="menuitem"
    tabindex="-1"
    :style="[paddingStyle, itemStyle, { backgroundColor }]"
    :class="{
'is-active': active,
'is-disabled': disabled
}"
    @click="handleClick"
    @mouseenter="onMouseEnter"
    @focus="onMouseEnter"
    @blur="onMouseLeave"
    @mouseleave="onMouseLeave"
  />
itemStyle() {
        const style = {
          color: this.active ? this.activeTextColor : this.textColor
        };
        if (this.mode === 'horizontal' && !this.isNested) {
          style.borderBottomColor = this.active
            ? (this.rootMenu.activeTextColor ? this.activeTextColor : '')
            : 'transparent';
        }
        return style;
      },

个人暂时修复的办法

:active-text-color="menuActiveColor"
menuActiveColor() {
      return this.$store.state.settings.theme
    },
7vhp5slm

7vhp5slm1#

我这边也遇到这个问题
直接删掉:active-text-color="variables.menuActiveText"也可以实现切换吧
@PanJiaChen 大神,看是否可以修复一下

相关问题