Vue3中为Ant Design Vue中table的checkbox加tooltip、popover

news2024/10/5 8:13:36
问题的产生

Vue版本:3.3.13

ant-design-vue 版本:3.x.x

在工作时遇到一个场景,需要在 ant-table 的 checkbox 被禁用的时候提示原因,但是在 ant-design-vue 文档中并没有发现有相关介绍。
在这里插入图片描述
首先我去看了issue中是否有提到相关问题,看了之后发现果然有,于是便看了下其他人的解决方法,感觉大概是重写选择逻辑,但是这样相对复杂,看到后面发现其实在rowSelection 参数中还有一个 renderCell 参数用来渲染勾选框,我以为就可以解决问题了,可是一看后面写的代码我发现它返回的是一个jsx。

const rowSelection = computed<TableRowSelection | null>(() => {
	return {
		...
		renderCell(checked, record, index, node) {
			//被禁用
	      	if (record.disabled) { 
	       		 return <tooltip title="被禁用">{node}</tooltip>;
		    }
	      	return node;
    	},
		...
	};
});
解决方法

但在vue中这样实现有点奇怪,想了一下我决定自己改一下 popover 然后用popover 组件包住这个node渲染到节点上。我的 popover 是这么写的,用component把VNode渲染出来。

# SelectionCheckboxTooltip.vue
<script setup lang="ts">
import {VNode} from 'vue';

const props = defineProps<{
  vn: VNode;
  tooltipMessage: string;
}>();
</script>

<template>
  <a-popover>
    <template #title>
      提示
    </template>
    <template #content>
      {{ props.tooltipMessage }}
    </template>
    <component :is="props.vn" />
  </a-popover>
</template>同时我改了下 renderCell 参数的代码。
/**
 * @description ant-table row 多选
 */
const rowSelection = computed(() => {
  return {
    ...
    renderCell: (_checked: boolean, record: any, _index: number, node: VNode) => {
      //被禁用的
      if (xxxx) {
        //第一个是组件,第二个是组件的props
        return h(SelectionCheckboxTooltip, {vn: node, tooltipMessage: '被禁用'});
      }
      return node;
    },
    getCheckboxProps: (record: any) => ({
      disabled: xxxx,
    }),
    ...
  };
});

问题解决,特此记录!

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

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

相关文章

[数据集][目标检测]抽烟喝酒检测数据集VOC+YOLO格式1026张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1026 标注数量(xml文件个数)&#xff1a;1026 标注数量(txt文件个数)&#xff1a;1026 标注…

【全网最全】2024电工杯数学建模A题前三题完整解答matlab+21页初步参考论文+py代码等(后续会更新成品论文)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片链接&#xff0c;那是获取资料的入口&#xff01; 【全网最全】2024电工杯数学建模A题前三题完整解答matlab21页初步参考论文py代码等&#xff08;后续会更新成品论文&#xff09;「首先来看看目前已有的…

Android Studio实现MQTT协议的连接

1添加依赖 在项目中找到下图文件 打开文件 如下 plugins {alias(libs.plugins.android.application) }android {namespace "com.example.mqtt_04"compileSdk 34defaultConfig {applicationId "com.example.mqtt_04"minSdk 27targetSdk 34versionCo…

网络性能与流量监控:优化企业网络管理的关键策略

目录 网络性能监控的重要性 1. 提高网络可靠性 2. 优化网络资源使用 3. 提升用户体验 网络流量监控的必要性 1. 识别异常流量 2. 改善网络管理 3. 确保合规性 AnaTraf网络流量分析仪&#xff1a;提升网络监控效率的利器 如何实施有效的网络监控策略 1. 确定监控目标…

yolov10 快速使用及训练

参考: https://docs.ultralytics.com/models/yolov10/ ultralytics其实大多数系列都能加载使用: 官方: https://github.com/THU-MIG/yolov10.git 代码参考: https://colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/train-yolov10-object-…

无界鼠标与键盘,如何轻松控制多台电脑

简介 在软件开发领域&#xff0c;高效地管理多台电脑是至关重要的。Mouse without Borders软件为开发人员提供了一种便捷的解决方案&#xff0c;使他们能够轻松地在多台电脑之间共享鼠标和键盘。不仅如此&#xff0c;Mouse without Borders还提供了许多高级功能&#xff0c;如…

洗地机哪个牌子最好用?2024洗地机排行榜

随着人们生活水平的提升&#xff0c;智能清洁家电已经成为日常生活中的必需品。如今的清洁家电市场上&#xff0c;洗地机、吸尘器和扫地机器人等设备各有其独特的功能和优势。洗地机结合了扫、拖、吸和自清洁等多种功能&#xff0c;不仅可以处理干湿垃圾&#xff0c;还能高效清…

TemperMonkey在百度搜索页面,提供跳转其他平台搜索、与批量打开搜索结果的功能的脚本代码

代码 // UserScript // name 百度搜索。链接其他搜索。跳转功能。 // namespace http://tampermonkey.net/ // version 0.1(2020-6-24 17:37:27) // description try to take over the world! // author gwd // match https://www.baidu.com/s?…

不知道是该怎么引用多个函数片段?具体示例如代码

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

冯喜运:5.25黄金价格和原油价格加速看跌?未来如何走势?

【黄金消息面分析】&#xff1a;本周黄金市场经历剧烈波动&#xff0c;金价创下五个半月来最糟糕的单周表现&#xff0c;尽管周五因美元下跌小幅回升。美联储的鹰派立场和美国经济数据强劲削弱了降息预期&#xff0c;导致金价承压。然而&#xff0c;分析师对未来金价走势看法不…

【车载开发系列】Autosar中的VFB

【车载开发系列】Autosar中的VFB # 【车载开发系列】Autosar中的VFB 【车载开发系列】Autosar中的VFB一. 什么是VFB二. VFB的优点与缺点1&#xff09;VFB的缺点2&#xff09;VFB的好处 三. RTE与VFB之间关系四. 总线架构模式 一. 什么是VFB Virtual Functional Bus。它就是虚拟…

42-2 应急响应之计划任务排查

一、进程排查 进程排查是指通过分析系统中正在运行的进程,以识别和处理恶意程序或异常行为。在Windows和Linux系统中,进程是操作系统的基本单位,因此对于发现和处理恶意软件或异常活动至关重要。恶意程序通常会以进程的形式在系统中运行,执行各种恶意操作,比如窃取信息、破…

Leetcode刷题笔记4

1658. 将 x 减到 0 的最小操作数 1658. 将 x 减到 0 的最小操作数 - 力扣&#xff08;LeetCode&#xff09; 示例 3&#xff1a; 输入&#xff1a;nums [3,2,20,1,1,3], x 10 输出&#xff1a;5 解释&#xff1a;最佳解决方案是移除后三个元素和前两个元素&#xff08;总共…

7.2k star的万能视频解析下载插件

今天给大家介绍一个超级厉害的浏览器插件&#xff0c;可以解析各个平台网页视频——猫抓。 项目简介 猫抓&#xff08;cat-catch&#xff09; 是一款资源嗅探扩展插件&#xff0c;他能够帮助你筛选列出当前页面的资源。简单来说&#xff0c;当你打开任意一个带有视频的网页&a…

分享几张漂亮的linux kde主题

分享几张漂亮的linux kde主题&#xff1a;在系统设置的全局主题内下载。

Git Core Lecture

1、Git 简介 官方介绍&#xff1a;Git is a fast distributed revision control system (Git 是一个快速的分布式版本控制系统) 2、Git Core Command 2.1 git init git 工程初始化&#xff0c;会在工作区 (working directory) 根目录中创建.git 目录 # 创建目录 $ mkdir git-i…

node.js —— 解读http模块

目录 http模块&#xff1a; http模块的引入&#xff1a; 创建web服务器的基本步骤&#xff1a; web服务器的一些基本属性&#xff1a; 上述知识汇总案例&#xff1a; http模块&#xff1a; http模块的引入&#xff1a; const http require (http) 创建web服务器的基本步骤…

数据可视化每周挑战——全国星巴克门店数据可视化

这是我国星巴克门店的位置&#xff0c;营业时间等数据。 1.导入需要用的库&#xff0c;同时设置绘图时用到的字体&#xff0c;同时防止绘图时负号无法正常显示的情况。 import pandas as pd from pyecharts.charts import Bar,Map,Line,Pie,Geo from pyecharts import option…

iBarcoder for Mac v3.15.1中文激活版:让条形码生成变得如此简单

在现代社会&#xff0c;条形码无处不在&#xff0c;从超市商品到物流包裹&#xff0c;都离不开它的身影。iBarcoder for Mac作为一款简单易用的条形码生成软件&#xff0c;让条形码的生成变得如此简单。 iBarcoder for Mac v3.15.1中文激活版下载 无论你是需要为商品添加条形码…