上一篇我們已經(jīng)利用van-checkbox成功實(shí)現(xiàn)一級選擇器控制二級全選的功能,點(diǎn)擊此鏈接>>查看。
接下來需要實(shí)現(xiàn)當(dāng)取消任意一個(gè)二級選擇器的選中狀態(tài)(即取消全選狀態(tài)時(shí)),一級選擇器也同步取消。
首先給二級選擇器添加click事件,同樣,不要給復(fù)選框組添加change事件,避免一級選擇器選中狀態(tài)變化時(shí)change事件會(huì)一直觸發(fā)。
復(fù)選框組通過 v-model 數(shù)組綁定復(fù)選框的勾選狀態(tài),通過name控制數(shù)組中存的值。
在checkLeader方法中編譯如下:
Map函數(shù)循環(huán)二級選擇器,由于二級選擇器的選中狀態(tài)是由memberShip數(shù)組決定的,而memberShip數(shù)組中存的是選中選擇器的id,只要有選擇器的id沒有出現(xiàn)在復(fù)選框組綁定的選中項(xiàng)數(shù)組中,便取消一級選擇器的選中狀態(tài);循環(huán)記錄數(shù)組存在的id,若數(shù)量與二級選擇器的數(shù)量相同則設(shè)置一級選擇器為選中狀態(tài)。
最后效果如圖所示: