vue 实现element-ui checkbox全选操作

这篇具有很好参考价值的文章主要介绍了vue 实现element-ui checkbox全选操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<template>
    <div>
    
        <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
    
        <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
    
            <el-checkbox v-for="(city,i) in cities" :label="city.name" :key="i" style="display:block">{{city.name}}</el-checkbox>
                <!-- 加上display:block即代表竖向排列 -->
        </el-checkbox-group>
    
    
    
    </div>
</template>

<script>
export default {
    data() {
        return {
            //全选
            checkAll: false,
            cities: [{
                    "name": "高一",
                    "value": "928"
                },
                {
                    "name": "高二",
                    "value": "929"
                },
                {
                    "name": "高三",
                    "value": "930"
                }
            ], //数据源
            checkedCities: [], //绑定默认选中
            isIndeterminate: false, //设置 indeterminate 状态,只负责样式控制
        };
    },
    methods: {
        // 全选 --- 当绑定值变化时触发的事件
        handleCheckAllChange(val) {
            console.log(val); //val的值是一个布尔值,点中全选为false,取消全选为true
            this.cities.forEach((item) => {
                //当全选被选中的时候,循环遍历源数据,把数据的每一项加入到默认选中的数组去
                this.checkedCities.push(item.name);
            });
            console.log("🚀 ~ file: checkbox.vue:47 ~ this.cities.forEach ~ checkedCities:", this.checkedCities)
            this.checkedCities = val ? this.checkedCities : []; //三元表达式,如果val的值为true,那么就把当前默认选中的值赋值给自身,这样页面页面上所有的元素就都选中了。如果为false,就是取消全选
            this.isIndeterminate = false; //官网说这是个样式控制,是来控制,什么时候半选的,要不要都无所谓,看你需求
        },
        // checkbox选中 --- 当绑定值变化时触发的事件
        handleCheckedCitiesChange(value) {
            console.log(value)
            let checkedCount = value.length; //选中值的长度
            this.checkAll = checkedCount === this.cities.length; //如果选中值的长度和源数据的长度一样,返回true,就表示你已经选中了全部checkbox,那么就把true赋值给this.checkAll
            this.isIndeterminate =
                checkedCount > 0 && checkedCount < this.cities.length; //同全选按钮事件里面的那个样式控制
        },
    },
};
</script>

<style lang="scss" scoped>

</style>

简单写法文章来源地址https://www.toymoban.com/news/detail-619179.html

<el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
  <el-checkbox v-for="(city,i) in cities" :label="city.name" :key="i" v-model="checkedCities" @change="handleCheckedCitiesChange">{{city.name}}</el-checkbox>
handleCheckAllChange(val) {//val就是v-model绑定的值,即this.checkAll
    if(this.checkAll){
        this.cities.forEach(item=>{
            this.checkedCities.push(item.name)
        })
    }else {
        this.checkedCities = []
    }

},
handleCheckedCitiesChange(value) {//value就是v-model绑定的值,即this.checkedCities
    console.log(this.checkedCities);
    if(this.checkedCities.length == this.cities.length){
        this.checkAll=true
    }else{
        this.checkAll=false
    }
}

到了这里,关于vue 实现element-ui checkbox全选操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui框架复选框全选功能简单实现

    效果图:   html: data绑定的数据   checkAll: false,   isALL: false, // 全选框是否在勾选状态   tableData: [], //全部数据   bushForm: [], //选中的数据 methods方法里写: //全选的思路--判断选中的数组的长度和原数组对比,一样的话就判断全部选中 全部代码:

    2024年02月11日
    浏览(35)
  • element-ui tree树形结构全选、取消全选,展开收起

    控制树形结构全选、取消全选,展开收起

    2024年01月17日
    浏览(34)
  • element-ui checkbox 组件源码分享

    简单分享 checkbox 组件,主要从以下三个方面来分享: 1、组件的页面结构 2、组件的属性 3、组件的方法 一、组件的页面结构 二、组件的属性 2.1 value / v-model 属性,绑定的值,类型 string / number / boolean,无默认值。 首先讨论单个 checkbox,通过 props 接收 父组件传递过来的 va

    2024年03月24日
    浏览(78)
  • 使用element-ui el-select 做下拉 全选+搜索 功能

    使用element-ui el-select 做下拉 全选+搜索 功能 有时候,需要用到下拉列表 全选和搜索,并且鼠标放入的时候有下拉列表展示。以前的做法是 check + el-input搜索结合做个组件,现在这个方法直接使用el-select 就能做到这个需求功能:有搜索+有全选+有取消+有确认请求+有鼠标移入自

    2024年02月11日
    浏览(42)
  • vue+element UI 使用el-cascader实现全选功能

    实现效果图     使用el-cascader代码片段 js代码 data数据设置: // 这里是处理成自己需要的数据格式, 需要把全选的这一选项过滤掉 // 原始选择的数据格式 [[\\\'全选\\\'], [1, 2], [1, 3], [1, 4],[5, 6], [5, 7, 8],5, 7, 9],[10]] //因为我自己需要的数据是“2,3,4,5”的格式,做了以下处理 注:本文是

    2024年02月12日
    浏览(42)
  • 【vue+element UI】实现带全选、反选、联级、搜索的下拉多选框

    halo小伙伴们,在开发的过程中是否有遇到需要为下拉多选框添加操作按钮的,如全选、反选、联级、搜索的下拉选框呢?如图所示: 这里我们需要借助vue-treeselect插件(官方地址) 第一步,安装vue-treeselect插件 第二步,封装下拉框组件 第三步,在需要该组件的页面引入该组

    2024年02月15日
    浏览(30)
  • 基于Element-ui 封装穿梭框(左侧树 右侧列表,可全选,列表可拖拽)

    Element-ui提供的穿梭框只支持列表,根据实际需求自己写了一个左边是树结构,右边是列表结构的穿梭框,(如果需要两边都是树结构的话,需要把右侧的逻辑参考左侧改一改)拖拽使用了 vuedraggable 插件

    2024年02月11日
    浏览(41)
  • vue使用Element UI时,el-table表格整行操作单选禁选并隐藏全选框

    需求:表格复选修改为单选,只可选择一个;不满足条件的不可勾选;可进行整行操作 注意使用的方法. 需求由复选改为单选后, 左上角全选框要进行隐藏 ,复选框也变成单选框,这里是通过css样式进行调整的 勾选复选框的select和整行操作的row-click可以共用同一个方法,

    2024年02月13日
    浏览(36)
  • element-ui el-tree 设置指定级别节点显示复选框el-checkbox

            /deep/ .el-tree {         padding-top: 15px;         padding-left: 10px;         // 不可全选样式         .el-tree-node {           .is-leaf + .el-checkbox .el-checkbox__inner {             display: inline-block;           }           .el-checkbox .el-checkbox__inner {             display: none;    

    2023年04月08日
    浏览(38)
  • vue+element-ui 实现下拉框滚动加载

    该功能是由 自定义滚动指令 结合下拉框 :remote-method 远程搜索 实现的 开启远程搜索 参考官方文档 绑定自定义指令 v-el-select-loadmore=“loadmore”

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包