我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue实现商品购物车全选反选

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue实现商品购物车全选反选

本文实例为大家分享了vue实现商品购物车全选反选的具体代码,供大家参考,具体内容如下

项目需求:

实现一个购物车
全选框实现对商家和商品的全选
商家全选框实现对当前商家所有商品的全选
取消其中一个商品则取消对应商家全选和全选框
选中一个商家下的所有商品则勾选对应商家的全选框,不勾选全选框
选中所有商品则勾选所有商家全选框和全选框

我的思路:

1、通过对数据的简单操作可实现更深层次的全选操作
2、vue.$set(object, key, value)给对象添加属性可以更新视图
3、通过es6的every判断数组中是否每个元素都满足条件,都满足返回true,有一个不满足则返回false

template:

<div class="box">
    <input type="checkbox" v-model="checkedAll" @change="checkAll"> 全选
</div>
<div class="list" style="margin-left:50px;" v-for="(val,k) in data" :key="k">
    <div class="box">
        <input type="checkbox" v-model="val.checked" @change="_checkAll(val)">
        {{val.seller}}
    </div>
    <ul v-for="(item,index) in val.goodsList" :key="index">
        <li>
            <input type="checkbox" v-model="item.checked" @change="handleCheck(item,index)">
            {{item.name}}
        </li>
    </ul>
</div>

scritpt层

var app = new Vue({
    el: "#app",
    data: {
        checkedAll: false, //控制是否全选
        data: [{
            seller: "商家1",
            goodsList: [{
                name: '商品1'
            }]
        }, {
            seller: "商家2",
            goodsList: [{
                name: '商品2'
            }, {
                name: '商品3'
            }]
        }] //数据
    },
    mounted() {
        this.data.forEach(item => {
            this.$set(item, "checked", false) //Vue 解决不能检测到对象属性的添加或删除
                // item.checked = false; //如果为真实数据直接设置的对象改变值不会更新视图
            if (item.goodsList) {
                item.goodsList.forEach((citem) => {
                    this.$set(citem, "checked", false)
                        // citem.checked = false;
                })
            }
        });
    },
    methods: {
        //全选
        checkAll() {
            this.data.forEach(item => {
                item.checked = this.checkedAll;
                if (item.goodsList) {
                    item.goodsList.forEach(citem => {
                        citem.checked = this.checkedAll;
                    })
                }
            })
        },
        //商家全选
        _checkAll(val, k) {
            val.goodsList.forEach(item => {
                item.checked = val.checked;
            });
            if (this.data.every(item => item.checked)) {
                this.checkedAll = true;
            } else {
                this.checkedAll = false;
            }

        },
        //商品选择框
        handleCheck(item, index) {
            var check = []; //保存中间层是否被选中的布尔值
            this.data.forEach((items, index) => {
                if (items.goodsList) {
                    var bool = items.goodsList.every(citem => citem.checked);
                    if (bool) {
                        items.checked = true;
                    } else {
                        items.checked = false;
                    }
                    check.push(bool);
                }
            })
            if (check.indexOf(false) == -1) {
                this.checkedAll = true;
            } else {
                this.checkedAll = false;
            }
        },
    }
})

效果如下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue实现商品购物车全选反选

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue怎么实现商品购物车全选反选

这篇“vue怎么实现商品购物车全选反选”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么实现商品购物车全选反选”文章吧
2023-06-30

用django实现购物车的商品加减功能

首先写出html代码 0
2023-01-30

Vue如何实现淘宝购物车三级选中功能

本文小编为大家详细介绍“Vue如何实现淘宝购物车三级选中功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue如何实现淘宝购物车三级选中功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实现:1.全选时所有商
2023-06-26

Vue怎么实现全选及反选功能

本篇内容介绍了“Vue怎么实现全选及反选功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先就是自己创建一个input,正在mx.txt的
2023-07-04

vue怎么实现商品多选功能

这篇文章主要讲解了“vue怎么实现商品多选功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么实现商品多选功能”吧!具体代码如下2023-06-30

ECSHOP购物车页面显示商品简单描述的实现方法

最近看到有朋友有这方面的需求,就整理了一下,写出来供有同样编程客栈需求的朋友备用,这里说的商品简单描述,不是商品的详细信息,而是后台编辑商品时在“其他信息”标签栏填写的那个“商gMPHIKlUr品简单描述
2022-06-12

买菜系统中如何实现购物车中商品数量的实时更新功能?

买菜系统中如何实现购物车中商品数量的实时更新功能?在现代社会,越来越多的人选择通过网上购买食材,而不是亲自去市场购买。为了方便顾客的购物体验,许多购物平台都提供了买菜系统。在这个系统中,顾客可以选择自己需要的食材,并将其加入购物车。然而,在
买菜系统中如何实现购物车中商品数量的实时更新功能?
2023-11-01

PHP开发买菜系统的购物车商品数量限制功能实现方法

近年来,随着电商行业的蓬勃发展,越来越多的传统企业开始将业务拓展到线上平台。作为传统零售行业的一员,买菜系统也开始逐渐转向线上销售。为了满足用户的需求,我们需要实现购物车商品数量限制功能,以确保系统的正常运行和用户体验。首先,让我们来了解一
PHP开发买菜系统的购物车商品数量限制功能实现方法
2023-11-01

vue怎么实现点击选中商品列表的功能

最近在做一个电商网站,需要实现点击选中商品列表的功能,借着这个机会,学习了一下Vue框架。在Vue中,实现点击选中列表非常简单,只需要使用Vue提供的v-on指令和v-bind指令即可。首先,在模板中定义一个商品列表,每个商品后面都有一个checkbox。```html<ul> <li v-for="item in itemList"> <input type="che
2023-05-14

Android实现仿淘宝购物车增加和减少商品数量功能demo示例

本文实例讲述了Android实现仿淘宝购物车增加和减少商品数量功能。分享给大家供大家参考,具体如下: 在前面一篇《Android实现的仿淘宝购物车demo示例》中,小编简单的介绍了如何使用listview来实现购物车,但是仅仅是简单的实现了
2022-06-06

编程热搜

目录