当前位置:   article > 正文

ElementUI修改el-tab-pane自定义添加class并修改组件样式_el-tab-pane更换样式

el-tab-pane更换样式

先上效果图:需求是当前用户绑定多个标签,那么默认选中第一个标签,其余所属标签字体颜色标记成黄色

代码

  1. <div class="top-wdx">
  2. <!-- tab标签 -->
  3. <div style="margin: 0 20px 0 20px">
  4. <el-tabs v-model="activeName" @tab-click="handleClick">
  5. <el-tab-pane
  6. :label="item.labelName"
  7. :name="item.labelId"
  8. v-for="(item, index) in businessArea"
  9. :key="index + 'e'"
  10. :class="businessIdsArea.includes(item.labelId) ? 'is__active' : ''"
  11. ></el-tab-pane>
  12. </el-tabs>
  13. </div>

vue解决方案:原生js动态添加class  setAttribute

  1. etPageLabelList() {
  2. getHomePageLabelList().then(res => {
  3. this.businessSelfArea = [...res]
  4. this.activeName = this.businessSelfArea?.length ? this.businessSelfArea[0].labelId : ''
  5. this.businessIdsArea = []
  6. for (let i = 0; i < this.businessSelfArea.length; i++) {
  7. this.businessIdsArea.push(this.businessSelfArea[i].labelId)
  8. }
  9. this.selectHotApplyList()
  10. this.$nextTick(() => {
  11. for (let k = 0; k < this.businessIdsArea.length; k++) {
  12. let id = 'tab-' + this.businessIdsArea[k]
  13. let classVal = document.getElementById('' + id).getAttribute('class')
  14. classVal = classVal.concat(' someSelfName')
  15. document.getElementById(id).setAttribute('class', classVal)
  16. }
  17. })
  18. })
  19. },

 Css

  1. ::v-deep {
  2. .someSelfName {
  3. color: #ffc433;
  4. }
  5. .el-tabs__item.is-active {
  6. color: #409eff;
  7. }
  8. }

写在最后

element官方文档并没有提供插槽,业务上有很多个性化需求,完成需求后记录一下,有需要的小伙伴可以直接复制代码使用。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/507194
推荐阅读
相关标签
  

闽ICP备14008679号