返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS+Vue实现三级全选单选
  • 947
分享到

JS+Vue实现三级全选单选

2024-04-02 19:04:59 947人浏览 八月长安
摘要

本文实例为大家分享了js+Vue实现三级全选单选的具体代码,供大家参考,具体内容如下 html <div class="demand-class"> <d

本文实例为大家分享了js+Vue实现三级全选单选的具体代码,供大家参考,具体内容如下

html

<div class="demand-class">
    <div class="demand-class-title">需求分类</div>
    <div class="demand-check">
        <input
        class="collect-top-checked"
        type="checkbox"
        v-model="demandChecked"
        @change="handledemandChecked"
        />全选
    </div>
    <div
        class="package-type package-type2"
        v-for="(itns, itds) in classiFications"
        :key="itns.id"
    >
        <div class="package-type-title upgrading-title">
        <input
            class="collect-top-checked"
            type="checkbox"
            v-model="ficationsCheck[itds]"
            @change="handleFicationsCheck(itds)"
        />{{ itns.name }}
        <div class="title-bor"></div>
        </div>
        <div class="package-type-content">
        <div
            v-for="cd in itns.children"
            :key="cd.id"
            class="package-type-list"
        >
            <input
            class="collect-top-checked"
            type="checkbox"
            :value="cd.id"
            @change="handlechildrenCheck(itds, cd.id)"
            v-model="childrenCheck"
            />
            <div>{{ cd.name }}</div>
        </div>
        </div>
    </div>
</div>

js

data () {
    classiFications: [], //需求分类 接口给的集合
    demandChecked: false, // 需求分类全选
    ficationsCheck: [], //一级分类的单个全选
    childrenCheck: [], //二级分类的全选
    demandCheckedShow: false, //二级全选不触发接口
}
 
methods: {
    // 需求分类全选
    handledemandChecked() {
        
        if (this.demandChecked) {
            this.classiFications.forEach((it, is) => {
            this.ficationsCheck[is] = true;
            this.handleFicationsCheck(is);
            });
        } else {
            this.classiFications.forEach((it, is) => {
            this.ficationsCheck[is] = false;
            this.handleFicationsCheck(is);
            });
        }
        },
        //一级分类所选
        async handleFicationsCheck(id) {
        
        this.demandCheckedShow = true;
        let tmp = this.classiFications[id].childrenIds; //当前选择的id子集合
        let tmpAdd = this.childrenCheck; //当前选择的id子集合
        if (this.ficationsCheck[id]) {
            tmp.forEach((item) => {
            for (let i = 0; i < tmp.length; i++) {
                if (tmpAdd.indexOf(item) === -1) {
                this.childrenCheck.push(item);
                }
            }
            });
        } else {
            tmp.forEach((item) => {
            for (let i = 0; i < tmp.length; i++) {
                if (tmpAdd.indexOf(item) !== -1) {
                this.childrenCheck.splice(this.childrenCheck.indexOf(item), 1);
                }
            }
            });
        }
        // this.handleType();
        this.currentPage = 0;
        await this.initSolutionAllPage();
        this.demandCheckedShow = false;
        },
        //二级分类所选
        handlechildrenCheck(ids, cd) {
      
        console.log(cd);
        let cont = 0;
        // let conts = 0;
        let tmp = this.classiFications[ids].childrenIds; //当前选择的id子集合
        let tmpAdd = this.childrenCheck; //当前选择的id子集合
        if (this.ficationsCheck[ids]) {
            tmp.forEach((item) => {
            for (let i = 0; i < tmp.length; i++) {
                if (tmpAdd.indexOf(item) === -1) {
                this.ficationsCheck[ids] = false;
                }
            }
            });
        } else {
            let tmpl = tmp.length === 1 ? 1 : tmp.length - 1;
            tmp.forEach((item) => {
            for (let i = 0; i < tmpl; i++) {
                if (tmpAdd.indexOf(item) !== -1) {
                // console.log(item);
                cont = cont + 1;
                }
            }
            });
            if (cont === this.classiFications[ids].childrenIds.length) {
            this.ficationsCheck[ids] = true;
            }
        }
        // this.handleType();
        if (!this.demandCheckedShow) {
            this.currentPage = 0;
            this.initSolutionAllPage();
        }
    },
}

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

--结束END--

本文标题: JS+Vue实现三级全选单选

本文链接: https://lsjlt.com/news/164348.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JS+Vue实现三级全选单选
    本文实例为大家分享了JS+Vue实现三级全选单选的具体代码,供大家参考,具体内容如下 HTML <div class="demand-class"> <d...
    99+
    2024-04-02
  • js实现简单省市区三级选择联级
    本文实例为大家分享了js实现省市区三级选择联级的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html lang="en"&g...
    99+
    2024-04-02
  • JS实现表单全选以及取消全选实例
    本文实例为大家分享了JS实现表单全选以及取消全选的具体代码,供大家参考,具体内容如下 实现效果: 全选按钮:点击全选按钮所有的小按钮都会被选中;点掉全选按钮,所有按钮取消选中; 小按...
    99+
    2024-04-02
  • JS如何实现表单全选以及取消全选功能
    小编给大家分享一下JS如何实现表单全选以及取消全选功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下实现效果:全选按钮:点击全选按钮所有的小按钮都会被...
    99+
    2023-06-29
  • js+css实现三级导航菜单
    本文实例为大家分享了js+css实现三级导航菜单的具体代码,供大家参考,具体内容如下 导航菜单hover事件用css实现相对容易,只需要将透明度更改即可,如果想要菜单有一个渐变的效果...
    99+
    2024-04-02
  • vue实现全选功能
    本文实例为大家分享了vue实现全选功能的具体代码,供大家参考,具体内容如下 全选思路 1、准备标签,样式,js,准备数据 2、将数据循环展示在页面上, 在li 里v-for 3、在全...
    99+
    2024-04-02
  • js, jQuery如何实现全选、反选功能
    这篇文章给大家分享的是有关js, jQuery如何实现全选、反选功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。js ,jq实现全选、反选功能:js:思路:1.点击全选按钮实现...
    99+
    2024-04-02
  • vue递归实现三级菜单
    本文实例为大家分享了vue递归实现三级菜单的具体代码,供大家参考,具体内容如下 父组件 <template> <div class="menu-leve...
    99+
    2024-04-02
  • vue2.0中vue-cli如何实现全选、单选计算总价格
    这篇文章给大家分享的是有关vue2.0中vue-cli如何实现全选、单选计算总价格的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。由于工作的需要并鉴于网上的vue2.0中vue-c...
    99+
    2024-04-02
  • Vue怎么实现多选和单选按钮
    这篇“Vue怎么实现多选和单选按钮”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue怎么实现多选和单选按钮”文章吧。多选按...
    99+
    2023-07-05
  • vue实现商品购物车全选反选
    本文实例为大家分享了vue实现商品购物车全选反选的具体代码,供大家参考,具体内容如下 项目需求: 实现一个购物车全选框实现对商家和商品的全选商家全选框实现对当前商家所有商品的全选取消...
    99+
    2024-04-02
  • Vue怎么实现全选及反选功能
    本篇内容介绍了“Vue怎么实现全选及反选功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先就是自己创建一个input,正在mx.txt的...
    99+
    2023-07-04
  • JavaScript实现表单全选或反选效果
    本文实例为大家分享了JavaScript实现表单全选或反选的具体代码,供大家参考,具体内容如下 表单中常常会用到checkbox复选框,通过复选框做出的列表全选或全不选的效果也是很常...
    99+
    2024-04-02
  • javascript checkbox全选和反选的简单实现
    javascript checkbox全选和反选的简单实现 发现这样写checkbox全选和反选最简洁明了。function tempUser(val){ $("input[name='userid']").each(fun...
    99+
    2023-05-31
    javascript checkbox 全选
  • vue如何实现基于element-ui的三级CheckBox复选框
    小编给大家分享一下vue如何实现基于element-ui的三级CheckBox复选框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧...
    99+
    2024-04-02
  • Vue如何实现淘宝购物车三级选中功能
    本文小编为大家详细介绍“Vue如何实现淘宝购物车三级选中功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue如何实现淘宝购物车三级选中功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实现:全选时所有商品+...
    99+
    2023-06-26
  • Vue实现淘宝购物车三级选中功能详解
    最近在练习商城项目,记录下实现购物车三级选中的过程(小白一个,水平很菜) 效果图: 实现: 1.全选时所有商品+店铺全部选中;反之全部取消选中 2.店铺选中时,当前店铺内所有商品选...
    99+
    2024-04-02
  • angular框架如何实现全选与单选chekbox
    这篇文章将为大家详细讲解有关angular框架如何实现全选与单选chekbox,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1)页面内容(静态页)<ul ...
    99+
    2024-04-02
  • vue实现三级联动动态菜单
    本文实例为大家分享了vue实现三级联动动态菜单的具体代码,供大家参考,具体内容如下 三级联动动态菜单展示:一级菜单选中,生成二级菜单数据,二级菜单选中,生成三级菜单数据(根据上一级菜...
    99+
    2024-04-02
  • vue怎么实现级联选择器
    本篇内容主要讲解“vue怎么实现级联选择器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么实现级联选择器”吧!基于Vue的级联选择器,可以单项,二级, 三级级联,多级级联web开发中我...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作