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