本文实例讲述了vue.js实现的全选与全不选功能。分享给大家供大家参考,具体如下:
elementui是有checkbox组件,不过问题在于checkbox组件内只能嵌套简单的字符串,如果要嵌入标签怎么办?
首先渲染页面:
<el-checkbox v-model=\"checkAll\" @change=\"handleCheckAllChange\">全选</el-checkbox>
<tbody v-for=\"item in orderData\">
<tr>
<td class=\"order-num\" colspan=\"7\">
<el-checkbox v-model=\"item.checkModel\" @change=\"handleCheckItemChange\" style=\"vertical-align:top;margin-top:20px;\"></el-checkbox>
<div class=\"num\">
<a href=\" :;\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" >订单号:{{item.orderNumber}}</a>
<p>商户单号:{{item.shopNumber}}</p>
</div>
</td>
<td class=\"order-action\" colspan=\"2\">
<a href=\" :;\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" >查看详情</a>-<a href=\" :;\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" >备注</a>-<a href=\" :;\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" >加星</a>
</td>
</tr>
<tr>
<td>
<div class=\"pic\">
<img :src=item.orderPic alt=\"\">
</div>
<div class=\"info\">
<a href=\" :;\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" >{{item.name}}</a>
<p>{{item.size}}</p>
<p>商品来源:{{item.from}}</p>
</div>
</td>
<td>{{item.number}}</td>
<td>{{item.price}}</td>
<td>-</td>
<td>{{item.company}}</td>
<td>
<p>{{item.address}}</p>
<p>({{item.phone}})</p>
</td>
<td>{{item.date}}<br />{{item.time}}</td>
<td>{{item.state}}</td>
<td>{{item.pay}}<br /><span v-if=\"item.postCost\">(运费:{{item.postCost}})</span></td>
</tr>
</tbody>
初始化data数据:
checkAll:false,
checkedAllShops:[],
checkItemData:[],
orderData:[
{
checkModel:false,
orderNumber:\'2017081618322542542\',
shopNumber:\'2017081618322542542\',
orderPic:\'../../../../static/images/realtimeprofile01.png\',
name:\'【商城】贴轻松穴位艾灸贴\',
size:\'5贴*盒\',
from:\'本店商品\',
number:\'10\',
price:\'200.00\',
company:\'蒂花之秀\',
address:\'童话镇\',
phone:\'12345678910\',
date:\'2018-1-12\',
time:\'09:30:00\',
state:\'订单关闭\',
pay:\'400.00\',
postCost:\'10\'
},{
checkModel:false,
orderNumber:\'2017081618322542542\',
shopNumber:\'2017081618322542542\',
orderPic:\'../../../../static/images/realtimeprofile01.png\',
name:\'【商城】贴轻松穴位艾灸贴\',
size:\'5贴*盒\',
from:\'本店商品\',
number:\'10\',
price:\'200.00\',
company:\'蒂花之秀\',
address:\'童话镇\',
phone:\'12345678910\',
date:\'2018-1-12\',
time:\'09:30:00\',
state:\'订单关闭\',
pay:\'400.00\',
postCost:\'10.00\'
}
]
相关方法:
handleCheckAllChange(val){
this.orderData.map((item,i)=>{
item.checkModel = val;
})
},
handleCheckItemChange(val){
for(let i = 0,l = this.orderData.length;i < l;i ++){
if(this.orderData[i].checkModel !== val){
this.checkAll = false;
return;
}
}
this.checkAll = val;
}
css代码就不贴出来了,不好看,哈哈
感兴趣的朋友还可以使用本站如下在线工具测试运行效果:
在线HTML/CSS/ 前端代码调试运行工具:
http://tools.jb51.net/code/WebCodeRun
在线HTML/CSS/ 代码运行工具:
http://tools.jb51.net/code/HtmlJsRun
希望本文所述对大家vue.js程序设计有所帮助。
继续阅读与本文标签相同的文章
-
等保2.0必须关注的点
2026-05-19栏目: 教程
-
美颜SDK关键功能点介绍
2026-05-19栏目: 教程
-
应用架构的核心使命是什么?阿里高级技术专家这样说
2026-05-19栏目: 教程
-
5G开启万物互联新畅想
2026-05-19栏目: 教程
-
5 分钟开发一个 AI 检测人体框架的 App
2026-05-19栏目: 教程
