element-ui el-table表格勾选框条件禁用,及全勾选按钮禁用, 记录

项目场景:

表格的部分内容是可以被勾选的,部分内容是不可以被勾选的
使用的是 “element-plus”: “^2.2.22”, 以上应该都是兼容的


问题描述

要求el-table表格中,部分内容不可以被勾选,全选框在没有可选内容时,是禁用状态

在这里插入图片描述

如上图所示,要求数据id是1或者2的数据不可被选择,当数据只剩下id为1和2的数据时,全选为禁用状态,当某一个全局值为true时,所有勾选框全部都是禁用状态

分析:

从描述来看,需求有以下几点
1、要求数据id是1或者2的数据不可被选择
2、当数据只剩下id为1和2的数据或者时,全选为禁用状态
3、当某一个全局值为true时,所有勾选框全部都是禁用状态

解决方案:

满足第一个条件:要求数据id是1或者2的数据不可被选择

<template><el-table :data="tableDatas" ><el-table-column type="selection" fixed="left" :selectable="checkSelectable"/><el-table-column label='姓名' prop="name" /></el-table>
</template>
<script setup>
const tableDatas = ref([
{ id:1, name:"张三"}{ id:2, name:"李四"}])
const checkSelectable = (row) => {if (row.id == 1 || row.id == 2) {return false} else {return true}
}
</script>

满足第二个条件:当数据只剩下id为1和2的数据或者时,全选为禁用状态
因为1和2不可被选择,所以他们只能剩下两条数据,由于全选框不能直接disable,所以需要给他加上样式

<template><el-table :data="tableDatas" :header-cell-class-name="cellClass"><el-table-column type="selection" fixed="left" :selectable="checkSelectable"/><el-table-column label='姓名' prop="name" /></el-table>
</template>
<script setup>
const tableDatas = ref([
{ id:1, name:"张三"}{ id:2, name:"李四"}])
const checkSelectable = (row) => {if (row.id == 1 || row.id == 2) {return false} else {return true}
}const cellClass = (row) => {const list = tableDatas.value.filter((rowss) => {return (rowss.idx == 1 || rowss.idx == 16)})if (row.columnIndex === 0) {if (list.length == tableData.length) {return "DisableSelection"}}}
</script>
<style scoped lang="less">
::v-deep {  //全选框用了fixed 用这个样式,没有用fixed就用下面那个样式.DisableSelection .cell .el-checkbox .el-checkbox__inner {background-color: var(--el-checkbox-disabled-input-fill) !important;border-color: var(--el-checkbox-disabled-border-color) !important;cursor: not-allowed !important;}
}::v-deep .el-table .DisableSelection .cell .el-checkbox__inner{background-color: var(--el-checkbox-disabled-input-fill);border-color: var(--el-checkbox-disabled-border-color);cursor: not-allowed;
}</style>

再满足第三个条件

<template><el-table :data="tableDatas" :header-cell-class-name="cellClass"><el-table-column type="selection" fixed="left"  :selectable="checkSelectable"/><el-table-column label='姓名' prop="name" /></el-table>
</template>
<script setup>
let ablestatus = true
const tableDatas = ref([
{ id:1, name:"张三"}{ id:2, name:"李四"}])
const checkSelectable = (row) => {if (row.id == 1 || row.id == 2 || ablestatus) {return false} else {return true}
}const cellClass = (row) => {const list = tableDatas.value.filter((rowss) => {return (rowss.idx == 1 || rowss.idx == 16)})if (row.columnIndex === 0) {if (list.length == tableData.length || ablestatus ) {return "DisableSelection"}}}
</script>
<style scoped lang="less">
::v-deep {  //全选框用了fixed 用这个样式,没有用fixed就用下面那个样式.DisableSelection .cell .el-checkbox .el-checkbox__inner {background-color: var(--el-checkbox-disabled-input-fill) !important;border-color: var(--el-checkbox-disabled-border-color) !important;cursor: not-allowed !important;}
}::v-deep .el-table .DisableSelection .cell .el-checkbox__inner{background-color: var(--el-checkbox-disabled-input-fill);border-color: var(--el-checkbox-disabled-border-color);cursor: not-allowed;
}</style>

就可以了 ,最后一个是完整代码,当然如果想在没有可选数据时,将全选按钮隐藏也可以把样式改成display:none,

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

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

相关文章

【漏洞复现】Sentinel Dashboard SSRF漏洞(CVE-2021-44139)

Nx01 产品简介 Sentinel Dashboard是一个轻量级的开源控制台&#xff0c;提供机器发现以及健康情况管理、监控、规则管理和推送的功能。它还提供了详细的被保护资源的实际访问统计情况&#xff0c;以及为不同服务配置的限流规则。 Nx02 漏洞描述 CVE-2021-44139漏洞主要存在于…

一些面试会问到的奇怪问题与面试总结

1.v-for、v-if先后顺序。 官方不建议一起使用&#xff0c;但是有时候面试的时候会问到。 在vue2中是v-for先与v-if的。 源码js编译结果&#xff1a; _c()就是vm.$createElement()&#xff0c;意思是创建一个虚拟的element&#xff0c;就是返回值是VNode。 _l就是renderlist…

【项目经验】详解Puppeteer入门及案例

文章目录 一.项目需求及Puppeteer是什么&#xff1f;二.Puppeteer注意事项及常用的方法1.注意事项2.常用的方法*puppeteer.launch&#xff08;&#xff09;**browser.newPage()**page.goto()**page.on(request&#xff0c;&#xff08;&#xff09;> {}&#xff09;**page.e…

USB Redirector本地安装并结合内网穿透实现远程共享和访问USB设备

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序&#xff0c;它提供了共享和访问本地或互联网上的U…

【dc-dc】世微AP5127平均电流型LED降压恒流驱动器 双色切换的LED灯驱动方案

这是一款双色切换的LED灯方案&#xff0c;12-50V 降压恒流,输出&#xff1a;6V 2.5A ​ 这是一款PWM工作模式 , 高效率、 外围简单、内置功率管&#xff0c;适用于 输入的 高 精度降压 LED 恒流驱动芯片。输出大功率可 达 25W&#xff0c;电流 2.5A。 可实现全亮/半亮功能切换…

上门按摩系统:科技与传统融合的新体验

在快节奏的现代生活中&#xff0c;人们越来越重视身心健康。传统的按摩方式虽然深受喜爱&#xff0c;却常因时间、地点的限制而无法满足需求。此时&#xff0c;上门按摩系统应运而生&#xff0c;将科技与传统的按摩技艺完美结合&#xff0c;为用户提供更便捷、个性化的服务。 上…

【Linux】自定义shell

👑作者主页:@安 度 因 🏠学习社区:安度因 📖专栏链接:Linux 文章目录 获取命令行前置字段命令行输入解析命令行普通指令的执行子进程执行命令指令类型判断 && 内建命令总结 &&a

uniapp的nvue是什么

什么是nvue uni-app App 端内置了一个基于 weex 改进的原生渲染引擎&#xff0c;提供了原生渲染能力。 在 App 端&#xff0c;如果使用 vue 页面&#xff0c;则使用 webview 渲染&#xff1b;如果使用 nvue 页面(native vue 的缩写)&#xff0c;则使用原生渲染。一个 App 中可…

深入解析JavaScript中new Function语法

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 Function是JavaScript中非常重要的内置构造函数,可以用来动态创建函数…

WebGIS开发者入门

WebGIS开发者入门第一章 前言一、开发技能掌握二、gis开发方向1.桌面gis2.webgis3.移动gis 总结 前言 开发方向 最近&#xff0c;地理信息系统(GIS)的开发与应用越来越多的倾向于Web端&#xff0c;Web端开发确实比以C# ArcGIS Engine为代表的C/S开发更具优势&#xff0c;而且可…

springboot网关添加swagger

添加依赖 <dependency><groupId>com.spring4all</groupId><artifactId>swagger-spring-boot-starter</artifactId><version>2.0.2</version></dependency>添加配置类&#xff0c;与服务启动类同一个层级 地址&#xff1a;http…

基于云平台技术如何降低整车的能耗浅谈

云平台技术可以通过多种方式降低整车的能耗&#xff1a; 智能监测&#xff1a;通过物联网技术&#xff0c;实时监测车辆的运行状态和设备状况&#xff0c;如电池电量、发动机性能、车速等。这种实时的数据反馈可以帮助驾驶员或系统更有效地管理车辆的运行&#xff0c;避免不必…

十大必备功能:打造高效知识库的关键因素

一个好的产品知识库应该成为客户了解产品功能、解决故障和满足产品相关查询的重要资源。但如果没有合理地维护和更新&#xff0c;其可能就失去了存在的价值。 知识库的有效性取决于其包含的信息是否全面、准确和实用。而要实现这一点&#xff0c;需要关注一些关键功能。 以人…

JAVA代码学习(上)

2023年将会持续于B站、CSDN等各大平台更新&#xff0c;可加入粉丝群与博主交流:838681355&#xff0c;为了老板大G共同努力。 【商务合作请私信或进群联系群主】 二、JAVA基本程序设计结构 2.1 需要学习 1.一个简单的JAVA应用程序了解 2.注释 3.数据类型 4.变量与常量 5.运算…

go中如何进行单元测试案例

一. 基础介绍 1. 创建测试文件 测试文件通常与要测试的代码文件位于同一个包中。测试文件的名称应该以 _test.go 结尾。例如&#xff0c;如果你要测试的文件是 math.go&#xff0c;那么测试文件可以命名为 math_test.go。 2. 编写测试函数 测试函数必须导入 testing 包。每…

大模型LORA微调总结

大模型LORA微调总结 大模型微调总结模型加载使用deepspeed不使用deepspeed使用lora加载分词器 数据加载构建source和target构建input_ids和labels标签补齐构建训练器LORA模型推理模型加载多batch推理构建lora微调推理合并模型权重 大模型微调总结 模型加载 使用deepspeed mod…

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题一 理论题

竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000分。三个模块内容和分值分别是&#xff1a; 1.第一阶段&#xff1a;模块一 网络平台搭建与设备安全防护&#xff08;180 分钟&#xff0c;300 分&#xff09;。 2.第二阶段&#xff1a;模块二…

一文让你对mysql索引底层实现明明白白

开篇&#xff1a; 图片是本人随笔画的&#xff0c;有点粗糙&#xff0c;望大家谅解&#xff0c;如有不对的地方&#xff0c;请联系我们&#xff0c;感谢 一、索引到底是什么 .索引是帮助mysql高效获取数据的排好序的数据结构 .索引是存储在文件里的 .数据结构&#xff1a; 二…

微信小程序怎么引入webview的url是本地的路径

当微信小程序访问类似http://10.27.0.15:8065/#/my这样的地址的时候会出问题。但是我们也不能每次把写的H5的代码发布在看效果啊&#xff1f; 只需要修改一个地方就可以啦。

Transformer 位置编码

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…