elementUI使用步骤条自定义显示内容和显示某一区间段的颜色

需求:在开发中我们经常会遇到需要指定特定节点的内容和区间颜色进行显示的,element-ui官网上面没有给出特定区间自定义颜色,这里我们通过给指定的节点添加类名的方式进行处理指定区间的颜色显示

在这里插入图片描述

1,自定义节点的样式具体实现方式如下:

主要就是动态绑定class,然后覆盖element底层的样式

<el-steps  :active="list.milepostRow.milepostActive" >
	 <el-step  v-for="(value, key) in list.milepostRow.mileposts"
	     :title="value.title"
	     :class=" key<2? 'key1':(key>=2 && key<4 ? 'key2' : 'key3') "
	     @click.native="on_click(key+1)"
	     :description="value.description" >
	</el-step>
</el-steps>

css的代码如下:(如果不生效我们这里可以使用穿透实现:less默认是不支持 >>> ,但是可用 /deep/ 和 ::v-deep;scss支持 >>>和::v-deep)

// 蓝色
.el-step.is-horizontal.key1{
       .el-step__icon.is-text{
     background: #409eff;
        color:#fff;
    }
    .el-step__head{
        border-color:#409eff;
    }
    .el-step__main{
        .ai-step__title,.el-step__description {
            color:#409eff;
        }
    }
}
 // 黑色
 .el-step.is-horizontal.key2{
     .el-step__icon.is-text{
         color:#303133;
     }
     .el-step__head{
         border-color:#303133;
     }
     .el-step__main{
         .el-step__title,.el-step__description {
             color: #303133;
         }
     }
 }
 // 灰色
 .el-step.is-horizontal.key3{
     .el-step__icon.is-text{
         color:#C0C4CC;
     }
     .el-step__head{
         border-color:#C0C4CC;
     }
     .el-step__main{
         .ai-step__title,.el-step__description{
             color:#C0C4CC;
         }
     }
 }

2,自定义显示内容主要是借用插槽的方式进行实现(鼠标移入凸显)

在这里插入图片描述
html部分:

<div style="width: 40%;background: #fff;padding:20px; ">
  <el-steps class="hoverSteps" direction="vertical" :space="80" :active="1">
     <el-step v-for="(value, key) in list">
       <template slot="description">
           <div @mouseover="mouseOver(key)"
                @mouseleave="mouseLeave(key)" :id="key">
                <div class="stepNoBtn" :class="current===key? 'stepBtn':''">
                   <div class="step-title-font">{{ value.title }}</div>
                 <div>{{value.description}}</div>
                 <div class="btnPosition">
                   <ai-button v-if="current===key" size="mini" type="primary">处理</ai-button>
                 </div>
                </div>
         </div>
       </template>
     </el-step>
   </el-steps>
 </div>

js部分如下:

list:[
  {
     title:'完成高优先级需求及问题的研发、测试及上线',
     description:'2020-04-20',
     status:0 // 判断是否有按钮及盒子凸显,例子中0代表不凸显无按钮。 具体情况可自行判断
   },
   {
     title:'完成中优先级需求及问题的研发、测试及上线',
     description:'2020-05-31',
     status:1
   },
   {
     title:'完成中低先级需求及问题的研发、测试及上线',
     description:'2020-05-31',
     status:0
   }
 ]
mouseOver(val){
  this.current = val
  this.hoverData[val] = true
  console.log(this.hoverData)
  console.log(this.hoverData[val]===true);
},
 mouseLeave(val){
   this.current = null
   this.hoverData[val] = false
   console.log(this.hoverData[val]===true);
},

css样式部分:

 // 里程碑样式begin
//里程碑样式
.hoverSteps{
  /deep/ .ai-step__description{
    padding-right:0 !important;
  }
}
.stepNoBtn{
  padding:12px 12px;
  box-sizing: border-box;
  margin-bottom:10px;
  .step-title-font{
    font-size:14px; font-weight: bold;;
  }
}
.stepBtn{
  box-sizing: border-box;
  background: #fff;
  /*width: 90%;*/
  border-radius: 4px;
  border: 1px solid #ebeef5;
  line-height: 1.4;
  box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
  word-break: break-all;
  .btnPosition{
    text-align: right;
  }
}

参考文章如下:https://blog.csdn.net/CuiCui_web/article/details/106402330

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值