本文實例講述了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   </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代碼就不貼出來了,不好看,哈哈
希望本文所述對大家vue.js程序設計有所幫助。
新聞熱點
疑難解答