vue+vant-UI框架實(shí)現(xiàn)購物車的復(fù)選框全選和反選功能
購物車頁面的設(shè)計(jì)圖
商品的列表
代碼:
<ul v-if="shoppingListData.rows.length"> <li v-for="(item,index) in shoppingListData.rows" :key="index" > <van-checkbox :value="item.goods_id" v-model="item.isChecked" checked-color="#07c160" @click="chooseChange(item.goods_id)" ></van-checkbox> <div class="list_details"> <div class="shop_img"><img :src="item.goods_image+'?w=150&h=150&crop=1'" alt="" ></div> <div class="goods_presentation"> <div class="pTitle"><p class="p1">{{item.goods_name}}</p></div> <!-- <p class="p2">{{item.color}}</p> --> <div class="price"> <span class="spanSprice">{{item.now_price | formatMoney}}</span> <span class="span_step"> <button @click="handleReduce(index)" :disabled="item.goods_qty===1" >-</button> <i>{{item.goods_qty}}</i> <button @click="handleAdd(index)">+</button> </span> </div> </div> </div> </li> </ul>
全選的復(fù)選框
全選的代碼:
<div class="footerflex"> <van-checkbox v-model="AllChecked" @click="checkAll" >全選</van-checkbox> <span class="management" v-if="managementShow" @click="management()" >管理</span> <span class="finish" v-if="finishShow" @click="management()" >完成</span> <van-button type="default" class='delete' @click="sureDel()" v-if="finishShow">刪除</van-button> <div v-if="managementShow"> <span class="summation">合計(jì)</span> <i>{{ totalPrice }}</i> <van-button type="default" class="pay" @click="closeAnAccount()">結(jié)算</van-button> </div> </div>
單選的change事件
代碼:
// 單選的change事件 chooseChange(id) { if (this.selectedData.indexOf(id) > -1) { this.remove(this.selectedData, id); } else { this.selectedData.push(id); } if (this.selectedData.length < this.shoppingListData.total) { this.AllChecked = false; } else { this.AllChecked = true; } console.log(this.selectedData); }
全選的JS
全選的代碼:
// 全選和反選 checkAll() { let list = this.shoppingListData.rows; if (this.AllChecked) { list.forEach(element => { element.isChecked = false; }); this.selectedData = []; } else { list.forEach(element => { element.isChecked = true; if (this.selectedData.indexOf(element.goods_id) < 0) { this.selectedData.push(element.goods_id); } }); console.log(this.selectedData); } },
數(shù)組刪除
代碼
//數(shù)組刪除 remove(arr, val) { var index = arr.indexOf(val); if (index > -1) { arr.splice(index, 1); } }
總結(jié)
以上所述是小編給大家介紹的vue+vant-UI框架實(shí)現(xiàn)購物車的復(fù)選框全選和反選功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
詳解vue-cli項(xiàng)目中怎么使用mock數(shù)據(jù)
這篇文章主要介紹了vue-cli項(xiàng)目中怎么使用mock數(shù)據(jù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05vue項(xiàng)目實(shí)現(xiàn)圖片懶加載的簡單步驟
懶加載的好處在于減少服務(wù)器的壓力,在網(wǎng)絡(luò)比較慢的情況下,可以提前給這張圖片添加一個(gè)占位圖片,提高用戶的體驗(yàn),這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目實(shí)現(xiàn)圖片懶加載的相關(guān)資料,需要的朋友可以參考下2022-09-09Vue基于el-breadcrumb實(shí)現(xiàn)面包屑功能(操作代碼)
這篇文章主要介紹了Vue基于el-breadcrumb實(shí)現(xiàn)面包屑功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09Vue中JSON文件神奇應(yīng)用fetch、axios異步加載與模塊導(dǎo)入全指南詳細(xì)教程
在Vue中使用JSON文件有多種方式,包括使用fetch方法加載JSON文件、使用axios庫加載JSON文件,以及將JSON文件導(dǎo)入為模塊,這篇文章主要介紹了Vue中JSON文件神奇應(yīng)用fetch、axios異步加載與模塊導(dǎo)入全指南詳細(xì)教程,需要的朋友可以參考下2024-01-01