Python私教张大鹏 Vue3整合AntDesignVue之Checkbox 多选框

news2024/11/14 23:50:45

何时使用

在一组可选项中进行多项选择时;
单独使用可以表示两种状态之间的切换,和 switch 类似。区别在于切换 switch 会直接触发状态改变,而 checkbox 一般用于状态标记,需要和提交操作配合。

案例:多选框组件

核心代码:

<template>
  <a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
</template>
<script setup>
import { ref } from 'vue';
const checked = ref(false);
</script>

vue3示例:

<script setup>
import {ref} from "vue";

const isAgree = ref(false)
</script>
<template>
  <div class="p-8 bg-indigo-50 text-center">
    <a-checkbox v-model:checked="isAgree">同意协议</a-checkbox>
    <a-divider/>
    <a-typography-title>{{ isAgree}}</a-typography-title>
  </div>
</template>

在这里插入图片描述

案例:全选

在实现全选效果时,你可能会用到 indeterminate 属性

核心代码:

<template>
  <div>
    <a-checkbox
      v-model:checked="state.checkAll"
      :indeterminate="state.indeterminate"
      @change="onCheckAllChange"
    >
      Check all
    </a-checkbox>
  </div>
  <a-divider />
  <a-checkbox-group v-model:value="state.checkedList" :options="plainOptions" />
</template>
<script setup>
import { reactive, watch } from 'vue';
const plainOptions = ['Apple', 'Pear', 'Orange'];
const state = reactive({
  indeterminate: true,
  checkAll: false,
  checkedList: ['Apple', 'Orange'],
});
const onCheckAllChange = e => {
  Object.assign(state, {
    checkedList: e.target.checked ? plainOptions : [],
    indeterminate: false,
  });
};
watch(
  () => state.checkedList,
  val => {
    state.indeterminate = !!val.length && val.length < plainOptions.length;
    state.checkAll = val.length === plainOptions.length;
  },
);
</script>

第一步:定义全选组件

<a-checkbox
            v-model:checked="state.checkAll"
            :indeterminate="state.indeterminate"
            @change="onCheckAllChange"
            >
  Check all
</a-checkbox>

第二步:定义选项组组件

<a-checkbox-group v-model:value="state.checkedList" :options="plainOptions" />

第三步:定义选项组内容

const plainOptions = ['Apple', 'Pear', 'Orange'];

第四步:定义全选状态

  • indeterminate:是否选中
  • checkAll:是否全选
  • checkedList:选中列表
const state = reactive({
  indeterminate: true,
  checkAll: false,
  checkedList: ['Apple', 'Orange'],
});

第五步:监听选中事件

const onCheckAllChange = e => {
  Object.assign(state, {
    checkedList: e.target.checked ? plainOptions : [],
    indeterminate: false,
  });
};

第六步:监听已选中列表

watch(
  () => state.checkedList,
  val => {
    state.indeterminate = !!val.length && val.length < plainOptions.length;
    state.checkAll = val.length === plainOptions.length;
  },
);

vue3示例:

<script setup>
import {reactive, ref, watch} from "vue";

const checkAll = ref(false)
const checkList = ["Python", "Golang", "JavaScript"]
const checkState = reactive({
  indeterminate: true,
  checkAll: false,
  checkedList: ["Python", "JavaScript"]
})
const onCheckAllChange = e => {
  Object.assign(checkState, {
    checkedList: e.target.checked ? checkList : [],
    indeterminate: false,
  })
}
watch(
    () => checkState.checkedList,
    val => {
      checkState.indeterminate = !!val.length && val.length < checkList.length
      checkState.checkAll = val.length === checkList.length
    }
)
</script>
<template>
  <div class="p-8 bg-indigo-50 text-center">
    <a-checkbox
        v-model:checked="checkState.checkAll"
        :indeterminate="checkState.indeterminate"
        @change="onCheckAllChange"
    >全选
    </a-checkbox>
    <a-divider/>
    <a-checkbox-group
        v-model:value="checkState.checkedList"
        :options="checkList"
    />
  </div>
</template>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1818779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机图形学入门10:着色

1.真实的世界 经过前面的变换&#xff0c;再到三角形遍历&#xff0c;深度缓存后&#xff0c;屏幕上每个像素都有了对应的颜色&#xff0c;显示的结果大概是如下左图的样子&#xff0c;我们发现物体每个面的颜色都一样&#xff0c;看起来不够真实。而如下右图显得更加真实&…

java学生考勤管理系统

学生考勤管理系统 学生考勤管理系统。功能&#xff1a;登录&#xff0c;班级管理&#xff0c;课程管理&#xff0c;用户管理&#xff0c;课程表管理&#xff0c;个人信心&#xff0c;修改密码。 技术&#xff1a;java&#xff0c;ssh&#xff0c;struts&#xff0c;spring&…

动手学操作系统(七、实现内存分页机制)

动手学操作系统&#xff08;七、实现内存分页机制&#xff09; 在上一节中&#xff0c;我们成功读取了物理内存的容量&#xff0c;并且在之前的学习中&#xff0c;我们的程序已经进入了保护模式&#xff0c;地址空间能够达到4GB&#xff0c;但是所有的进程&#xff08;包括操作…

开发TEE的踩坑之配置PCCS

系统&#xff1a;Ubuntu20.04&#xff08;双系统&#xff0c;非虚拟机&#xff09; 一、解决node.js的版本问题二、解决开启PCCS服务的问题1、解决开启PCCS服务2、解决访问本地的8081端口 本系列为笔者开发TEE&#xff08;Trusted Execution Environment&#xff0c;可信执行环…

k8s metrics-server服务监控pod 的 cpu、内存

项目场景&#xff1a; 需要开启指标服务&#xff0c;依据pod 的 cpu、内存使用率进行自动的扩容或缩容 pod 的数量 解决方案&#xff1a; 下载 metrics-server 组件配置文件&#xff1a; wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/…

【已解决】Python 中 AttributeError: ‘NoneType‘ object has no attribute ‘X‘ 报错

本文摘要&#xff1a;本文已解决 AttributeError: ‘NoneType‘ object has no attribute ‘X‘ 的相关报错问题&#xff0c;并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。 &#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱…

HTML静态网页成品作业(HTML+CSS+JS)—— 美食企业曹氏鸭脖介绍网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;使用Javacsript代码实现 图片轮播切换&#xff0c;共有4个页面。 二、…

称重显示模块 Modbus RTU 通信

目录 一、智能称重数字显示器模块(带通信)1、称重传感器接线说明称重显示模块称重传感器USB 转 TTL 2、校准传感器&#xff08;标定&#xff1a;零点标定、满度标定&#xff09; 二、Modbus RTU 协议1、Modbus RTU 数据帧2、数据帧格式请求帧响应帧 三、上位机电脑与称重显示模…

使用神卓互联来访问单位内部web【内网穿透神器】

在现代工作环境中&#xff0c;有时我们需要从外部访问单位内部的 web 资源&#xff0c;而神卓互联这款内网穿透神器就能完美地满足这一需求。 使用神卓互联来访问单位内部 web 其实并不复杂&#xff0c;以下是大致的使用步骤和配置方法。 首先&#xff0c;我们需要在单位内部的…

基于Unet++在kaggle—2018dsb数据集上实现图像分割

目录 1. 作者介绍2. 理论知识介绍2.1 Unet模型介绍 3. 实验过程3.1 数据集介绍3.2 代码实现3.3 结果 4. 参考链接 1. 作者介绍 郭冠群&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2023级研究生 研究方向&#xff1a;机器视觉与人工智能 电子邮件&#xff…

【电机】开环控制系统和闭环控制系统

1 什么是控制系统 控制系统是指由控制主体、控制客体和控制媒体组成的具有自身目标和功能的管理系统。也可以理解为&#xff1a;为了使控制对象达到预期的稳定状态。例如一个水箱的温度控制&#xff0c;可以通过控制加热设备输出的功率进而来改变水温达到目标温度&#xff0c;…

Linux发邮件的工具推荐有哪些?如何配置?

Linux发邮件的功能怎么样&#xff1f;Linux系统如何设置服务器&#xff1f; 在Linux操作系统中&#xff0c;有多种工具可供选择用来发送电子邮件&#xff0c;每种工具都有其独特的特点和适用场景。AokSend将介绍几种常用的Linux发邮件工具&#xff0c;并分析它们的优缺点和适用…

接口自动化测试的全面解析与实战指南!

&#x1f680; 【引言】&#x1f680; 接口自动化测试&#xff0c;作为现代软件开发生命周期中的关键一环&#xff0c;扮演着“质量守门员”的角色。它不仅关乎提升开发速度&#xff0c;更在于确保每一次更新都能可靠地满足用户期待。接下来&#xff0c;我们将踏上一场深入浅出…

Redis分布式锁的实现、优化与Redlock算法探讨

Redis分布式锁最简单的实现 要实现分布式锁,首先需要Redis具备“互斥”能力,这可以通过SETNX命令实现。SETNX表示SET if Not Exists,即如果key不存在,才会设置它的值,否则什么也不做。利用这一点,不同客户端就能实现互斥,从而实现一个分布式锁。 举例: 客户端1申请加…

RH850---注意问题积累--1

硬件规格(引脚分配&#xff0c;内存映射&#xff0c;外设功能规格、电气特性、时序图)和操作说明 注意:有关使用的详细信息&#xff0c;请参阅应用说明 ---------外围函数。。。 1:存储指令完成与后续同步指令的一代 当控制寄存器被存储指令更新时&#xff0c;从存储的执行开始…

在网站建设时,如何选择适合自己的网站模版

可以根据以下几个地方选择适合的网站模板 1.公司的核心业务 根据公司的业务内容来确定网站展示的内容之一&#xff0c;不同的业务内容可以有不同的展示方式&#xff0c;以此来确定网站的展示风格之一&#xff0c;公司肯定是要有明确的业务内容&#xff0c;并且能够在网站…

[C#]winform使用onnxruntime部署LYT-Net轻量级低光图像增强算法

【训练源码】 https://github.com/albrateanu/LYT-Net 【参考源码】 https://github.com/hpc203/Low-Light-Image-Enhancement-onnxrun 【算法介绍】 一、研究动机 1.研究目标 研究的目标是提出一种轻量级的基于YUV Transformer 的网络&#xff08;LYT-Net&#xff09;&…

neo4j-官网学习

1、cypher 代码学习文档 https://neo4j.com/docs/cypher-cheat-sheet/5/auradb-enterprise 2、APOC函数包安装&#xff08;desktop&#xff09; 直接点击就可以安装&#xff0c;安装完之后重启一下&#xff0c;Cypher查询中使用CALL apoc.help(‘apoc’)来检查APOC插件是否已…

Java技术驱动的工程项目管理系统源码:工程管理的数字化解决方案

工程项目管理系统是一款基于Java技术的专业工程管理软件&#xff0c;它采用了Spring Cloud、Spring Boot、Mybatis、Vue和ElementUI等前沿技术&#xff0c;通过前后端分离架构构建了一个功能全面的工程项目管理系统。 随着公司的发展&#xff0c;工程管理的需求日益增长&#x…

图像处理与视觉感知复习--彩色图像处理

文章目录 三原色原理及其两种应用常用彩色模型及其应用领域各种颜色模型的转换彩色图像处理 三原色原理及其两种应用 三基色原理 自然界中绝大多数的颜色都可看作是由红、绿、蓝三种颜色组合而成&#xff1b;自然界中的绝大多数的颜色都可以分解成红、绿、蓝这三种颜色。这即…