Vue 动态绑定CSS样式

   今天在做项目上遇见了一个需求,通过不能的进度类型展示不同的进度形态,进度形态通过背景色和背景色上的文字显示。

效果图:

 

 

由于Element UI版本我用的是2.5.4  使用进度条的话 就没有2.9.2及更高版本的format属性,format属性:自定义进度条的文本内容

所以就只能自己实现类似于进度条的形状:

实现步骤:

1.定义一个p标签,p标签里面包含显示文本的a标签,内显文字显示为白色

<p class="rcorners4" :style="scope.row.firstQuarterSpeedofProgress|getBackgroundColor"><a style="color:white">{{scope.row.firstQuarterSpeedofProgress|getSpeedofProgress}}</a></p> 

 2.定义基本rcorners4样式

 .rcorners4 {
    text-align: center;
    border-radius: 50px 50px 50px 50px;  
    width: 80px;
    height: 26px; 
   } 

3.通过Vue过滤器实现动态切换颜色及文本文字

            getSpeedofProgress(val){
              if(val==1){return '已完成'}
              if(val==2){return '应完未完'}
              if(val==3){return '进度滞后'}
              if(val==4){return '正常推进'}
            }, 
            getBackgroundColor(val){ 
                 switch(val){
                    case 1: return 'background: #22A7FF';break
                    case 2: return 'background: red';break
                    case 3: return 'background: #EEEE11';break
                    case 4: return 'background: #2BD54D';break
                    default:return 'background: white';
                }  
            }

 

posted @ 2021-08-07 10:54  我本梁人  阅读(1559)  评论(0编辑  收藏  举报