首先给数组每个数据加个checked
用selectCheckItemId记住选择的Id

  mounted() {
            this.cartList.forEach(item => {
                this.$set(item, "checked", false) //Vue 解决不能检测到对象属性的添加或删除
                if (item.orderItemList) {
                    item.orderItemList.forEach((citem) => {
                        this.$set(citem, "checked", false)
                    })
                }
            });
        },

商品全选

  //全选
            checkAll() {
                this.cartList.forEach(item => {
                    item.checked = this.checkedAll;
                    if (item.orderItemList) {
                        item.orderItemList.forEach(citem => {
                            citem.checked = this.checkedAll;
                            if (this.checkedAll) {
                                this.selectCheckItemId.push(citem.itemId);
                            } else {
                                this.selectCheckItemId = [];
                            }
                        })
                    }
                })
            },

商家全选

   //商家全选
            _checkAll(val) {
                val.orderItemList.forEach(item => {
                    item.checked = val.checked;
                    if (val.checked) {
                        this.selectCheckItemId.push(item.itemId);
                    } else {
                        let index = this.selectCheckItemId.indexOf(item.itemId);
                        this.selectCheckItemId.splice(index, 1);
                    }
                });
                //全选判断 如果商家全选则勾选全选
                if (this.cartList.every(item => item.checked)) {
                    this.checkedAll = true;
                } else {
                    this.checkedAll = false;
                }
            },

商品全选

  //商品选择框
            handleCheck(item, index) {
                var check = []; //用于存放商家的checked
                this.cartList.forEach((items, index) => {
                    if (items.orderItemList) {
                        //判断是否商品全选
                        var bool = items.orderItemList.every(citem => citem.checked);
                        if (bool) {
                            //商品全选则勾选对应商家
                            items.checked = true;
                        } else {
                            items.checked = false;
                        }
                        check.push(bool);
                    }
                })

                if (item.checked) {
                    this.selectCheckItemId.push(item.itemId);
                } else {
                    let index = this.selectCheckItemId.indexOf(item.itemId);
                    this.selectCheckItemId.splice(index, 1);
                }
                //如果商家全选则勾选全选
                if (check.indexOf(false) == -1) {
                    this.checkedAll = true;
                } else {
                    this.checkedAll = false;
                }

            },