Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >全选-复选框/单选

全选-复选框/单选

作者头像
itclanCoder
发布于 2021-11-30 07:15:54
发布于 2021-11-30 07:15:54
3K00
代码可运行
举报
文章被收录于专栏:itclanCoderitclanCoder
运行总次数:0
代码可运行

背景

在一些后台管理系统中,对于全选/复选框是一个很常见的需求

虽然有现成的组件,但依旧需要对数据进行处理

实例代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
    <div class="el-checkbox-wrap">
        <div class="select-all">
             <el-checkbox
              :indeterminate="isIndeterminate"
              v-model="formParams.checkAll"
              @change="handleCheckAllChange"
              >全选
            </el-checkbox>
        </div>
        <div>
            <el-checkbox-group
              v-model="formParams.checkeddotNames"
              @change="handleCheckeddotNamesChange"
            >
              <el-checkbox
                v-for="item in checkOptionsData"
                :label="item.code"
                :key="item.code"
              >
                {{ item.name }}
              </el-checkbox>
            </el-checkbox-group>
        </div>
    </div>
</template>

<script>
    export default {
        name: "checkbox",
        data() {
            return {
                formParams: {
                    isIndeterminate: false, // 设置 indeterminate 状态,只负责样式控制
                    checkAll: true, // 默认全选,true表示全选,false,不全选
                    checkeddotNames: [], // 绑定默认选中
                    code: "", // 向后端传的code字符串
                },

                dot_info: [
                    {
                      code: '1',
                      name: "画报点击"
                    },

                    {
                        code: '2',
                        name: "画报展现"
                    },

                    {
                        code: '3',
                        name: "设置壁纸"
                    },
                    {
                        code: '4',
                        name: "设置H5"
                    },
                    {
                        code: '5',
                        name: "视频播放"
                    }
                ]
            }
        },

        computed: {
             checkOptionsData() {
                return this.dot_info;
             },
        },

        mounted() {
            this.formParams.checkeddotNames = this.dot_info.map(item => item.code)
        },

        methods: {
            // 全选
            handleCheckAllChange() {
                //console.log("全选", val); // val就是v-model绑定的值,即this.formParams.checkAll
               if (this.formParams.checkAll) {
                // 当全选被选中的时候,循环遍历源数据,把数据的每一项加入到默认选中的数组中区
                this.formParams.checkeddotNames = this.dot_info.map((item) => item.code);
                } else {
                    this.formParams.checkeddotNames = [];
                    this.formParams.code = "";
                }
                this.isIndeterminate = false;
            },

             // 全选后面的单选
            handleCheckeddotNamesChange(value) {
                // value就是v-model绑定的值,即this.formParams.checkeddotNames
                console.log(value);
                if (this.formParams.checkeddotNames.length == this.dot_info.length) {
                    this.formParams.checkAll = true;
                } else {
                    this.formParams.checkAll = false;
                }

                this.formParams.code = this.formParams.checkeddotNames.join(",");  // 需要拼接成字符欻,用逗号,具体以什么样的格式,可与后端协商
            },
        }
    }
</script>

<style lang="scss" scoped>

.select-all {
    margin-right: 20px;
}
.el-checkbox-wrap {
    display: flex;
    align-content: center;
    margin: 20px 0 20px 0;
}
</style>

温馨提示

效果是其次的,需要注意的是,向后端传递具体的数据,最后把需要的字段,数据传递给后端就可以了的

拓展

有些图片上右上角有单选项框,背景是图片,类似这种的也是类似处理

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 itclanCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
全选-复选框-控制表格的列的显示和隐藏
在做一些后台数据统计功能时,需要做一些展示层面上的过滤,结合复选框,显示和隐藏某一列或某一行
itclanCoder
2021/11/30
3.9K0
全选-复选框-控制表格的列的显示和隐藏
JS如何实现勾选全部复选框和不全选复选框
在一些后台管理系统里面,针对全选,复选框是一个很常见的操作,复选框可以执行多项选择的一种控件,有时,为了方便用户选中所有的复选框,网页界面
itclanCoder
2023/02/26
6.6K0
JS如何实现勾选全部复选框和不全选复选框
Element UI极简教程(3):Radio、Checkbox、Input组件的使用
Element UI 的 Radio 使用起来非常简单,直接使用 el-radio 标签即可,属性 v-model 表示该单选框绑定的对象,label 表示该单选框的值,代码如下所示:
南风
2021/12/21
3.2K0
Element UI极简教程(3):Radio、Checkbox、Input组件的使用
elementUI中checekBox实现全选和反选以及实现在input中输入空格出现label分割
官方全选DEMO 全选这里就不实现了,很简单,官方给的有,实现反选 这里使用的还是官方的demo,只是添加了一个反选的函数,所以使用的时候先看官方demo源码
何处锦绣不灰堆
2020/10/26
7420
element-plus下拉框全选
实习确实能学到不少东西,但是学到的东西果然还是需要沉淀下来,不然后面立马又忘记了。
赤蓝紫
2023/03/16
2.5K0
element-plus下拉框全选
解决 Vue 动态生成 el-checkbox 点击无法赋值问题
最近遇到一个问题,在一个页面需要动态渲染页面内的表单,其中包括 checkbox 表单类型,并且使用 Element 组件 UI 时,此时 v-model 绑定的数据也是动态生成的
Krry
2019/02/20
6.3K0
vue + 高德地图
https://lbs.amap.com/api/javascript-api-v2/summary
用户4396583
2024/09/23
1760
ElementUI Form 表单
Form 表单由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据
py3study
2021/01/06
2.6K0
ElementUI Form 表单
ElementUI Checkbox 多选框
https://element.eleme.io/#/zh-CN/component/checkbox
py3study
2021/03/12
3K0
ElementUI Checkbox 多选框
el-checkbox多选框实现单选效果,选中一个选项则自动取消其他勾选
true-label为选项值,false-label要为null或者空或者什么都可以。data必须先初始化好字段
用户4396583
2024/08/05
1.2K0
ElementUI el-checkbox 点击Label不取消复选框的选中状态
在点击label的时候不取消复选框的状态 实现 将change事件改为click事件 <div class="grid-content bg-purple">
彼岸舞
2021/06/21
4.5K0
ElementUI el-checkbox 点击Label不取消复选框的选中状态
vue 怎么将Checkbox 多选框选中的值提交
说好的学习计划来了,用十天的时间,深入了解一下饿了么的组件,简单的记录一下,首先上文档:
王小婷
2020/10/14
2.3K0
vue3+ts+element-plus项目总结2
最近,在写vue3 + ts 项目,项目中使用技术点总结2 , 推荐收藏,供开发时使用
用户9914333
2024/02/05
1930
vue3+ts+element-plus项目总结2
Vue 复选框 checkbox 全选与取消全选
按照jQuery的思想来做的话,要选中全选checkbox和所有的checkbox项,分别注册选中事件,判断选中状态来给相关的checkbox设置对应的状态,这就涉及到很多的dom操作。 下面就看一下vue数据驱动dom的思想来实现这一功能。
sunonzj
2022/06/21
2.7K0
Vue 复选框 checkbox 全选与取消全选
自定义vue日历组件
今天给大家介绍一下,如何在vue中实现自定义日历组件,功能类似FullCalendar插件,但是却比较灵活。
林老师带你学编程
2022/05/06
1.5K0
Element-UI快速入门
https://element.eleme.cn/#/zh-CN/component/installation
陶然同学
2023/02/24
4.3K0
Element-UI快速入门
如何实现复选框的全选和取消全选效果
如何实现复选框的全选和取消全选效果: 在很多网站都有这样的功能,当点击一个全选按钮之后,所有的复选框都会被选中,再点击之后会取消全选,功能非常的人性化,可以省却很多人力,下面就简单介绍一下JS如何实现此功能,代码实例如下:
全栈程序员站长
2022/07/15
2.4K0
vue+element踩坑记-checkbox的全选和全不选的操作实现
在做一个业务的时候,有一个需求是多个条件进行筛选,全部是checkbox的筛选条件,可以进行任意一个的选择还可以进行全选和全不选,这样进行表格的筛选
何处锦绣不灰堆
2020/05/29
3.3K0
Element 根据描述展示表单
假如数据格式如下: formData: [ { title: "气密性测试", param: [ { mode: "检查方式1", way: "单选", required: "Y", content: ["检漏仪", "u形管"], value: "检漏仪"
一只图雀
2020/09/21
9220
10. CMDB前端开发-IDC管理
alexhuiwang
2023/05/26
1.2K0
10. CMDB前端开发-IDC管理
推荐阅读
相关推荐
全选-复选框-控制表格的列的显示和隐藏
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验