使用van-checkbox-group包含van-cell去循环数据列表,而选中的van-cell需要改变背景图,下面是个人的实现方式(简单的一批,两行代码搞定)
html:因为vant的van-checkbox-group选中的数据会保存在一个数组中,所以用indexOf来判断当前cell的某个值在数组中是否存在,不存在返回 -1,则当前cell的class为空,否则为自定义的类名
<van-checkbox-group v-model="checkedDev" checked-color="red"> <van-cell-group> <van-cell v-for="(items, index) in DevList" :title="items.deviceName" :key="index" :class="checkedDev.indexOf(items.machineCode) === -1 ? '' : 'red'" /> @click="toggle(index)"> <template #right-icon> <van-checkbox :name="items.machineCode" ref="checkDev"/> </template> </van-cell> </van-cell-group> </van-checkbox-group>
然后通过类名去设置背景图或者背景色就可以啦~~~
css:
.van-cell.current_checked { background: url("../../../assets/images/monitor/empowerBg.png"); }
效果图: