vue中将后台返回的数字转换成对应的文字,通过动态绑定类名修改文字颜色
前言:项目中有展示订单状态这样一个需求,后端数据返我的是数字,但前端展示的是文字‘已购买’,‘退卡中’,‘未购买’;后端要求是数字为10表示‘已购买’颜色为绿,11或者12代表‘退卡中’颜色为橙,null代表‘未购买’颜色为红;基于这个需求,来记录一下这里用到了vue的动态绑定类名思路:先在样式里定义好用到的几个颜色vue的动态绑定类名,如果item.earn_profit_type == '10
·
前言:
项目中有展示订单状态这样一个需求,后端数据返我的是数字,但前端展示的是文字‘已购买’,‘退卡中’,‘未购买’;后端要求是数字为10表示‘已购买’颜色为绿,11或者12代表‘退卡中’颜色为橙,null代表‘未购买’颜色为红;基于这个需求,来记录一下
这里用到了vue的动态绑定类名
思路:
- 先在样式里定义好用到的几个颜色
- vue的动态绑定类名,如果
item.earn_profit_type == '10'
为true,class类名就是green
,如果item.earn_profit_type == '11'
或者item.earn_profit_type == '12'
为true
,class类名就是yellow
,以此类推 - 根据接口数字改成相应易懂的文字,调用
filterStatus()
方法,需要传一个值,也就是获取接口返回的数字
解决过程:
CSS样式
.green {
color: #39b54a;
}
.yellow {
color: #f29124;
}
.red {
color: #e6432d;
}
html
这里取得代码其实是vue for循环里面的一部分
<div class="register">
<span>订单状态</span>
<p
class="withdrawal_num"
:class="{
green: item.earn_profit_type == '10',
yellow:
item.earn_profit_type == '11' ||
item.earn_profit_type == '12',
red: item.earn_profit_type === null
}"
>
{{ filterStatus(item.earn_profit_type) }}
</p>
</div>
js
filterStatus(val) {
if (val == "10") {
return "已购买";
} else if (val == "11" || val == "12") {
return "退卡中";
} else {
return "未购买";
}
}
这样就可以直接在页面中显示我们想要的效果了~
更多推荐
已为社区贡献18条内容
所有评论(0)