vue.js实现的全选与全不选功能示例【基于elementui】
程序员文章站
2022-10-24 09:34:51
本文实例讲述了vue.js实现的全选与全不选功能。分享给大家供大家参考,具体如下:
elementui是有checkbox组件,不过问题在于checkbox组件内只能嵌套...
本文实例讲述了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="javascript:;" 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="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >查看详情</a>-<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >备注</a>-<a href="javascript:;" 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="javascript:;" 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/javascript前端代码调试运行工具:
http://tools.jb51.net/code/webcoderun
在线html/css/javascript代码运行工具:
http://tools.jb51.net/code/htmljsrun
希望本文所述对大家vue.js程序设计有所帮助。
下一篇: vue实现的组件兄弟间通信功能示例