河豚随心记(二)antd-vue的a-table组件单列与多列的自定义

本文主要是介绍河豚随心记(二)antd-vue的a-table组件单列与多列的自定义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写个笔记记录下自己使用组件/插件的经历,个人经历,仅用作记录与参考,写法和解决方案各位还需鉴别,有更好的方法欢迎指导讨论。

Ant Design Vue的table组件的基本用法官方文档说的比较清楚了:antd-vue 表格Table组件
这里记录下个人的使用经历和遇到的坑,项目以jeecg-boot 2.3.0作为架构进行开发,仅供参考。
1.针对table组件生成的表格某一列的数据变化去改变其他列的样式:
需求是一级分类行颜色为蓝色,二级分类行颜色为橘色,效果图如下:
在这里插入图片描述
将级别列的数值作为判断条件,一级时2列数据都呈蓝色样式,二级时2列数据都呈橘色样式。

这里是肯定要用到table组件的列自定义的,所以我们先来看下antd的table组件怎么进行列自定义
先看列自定义的效果之一:
在这里插入图片描述
这里对计费号码列做的隐私保护处理,隐藏将中间四位手机号码换成 * 号。
这里实际上是对列数据进行自定义,有两种写法,第一种是在标签里去操作,第二种是通过自定义渲染函数在columns属性里操作,先看第一种:
在这里插入图片描述
可以看到计费号码这边就是正常写了,多了一个scopedSlots属性,注意这个属性是一个对象,对象中的customRender属性的值要记下,这个是和标签里面插槽值对应的,接着看标签:
在这里插入图片描述
这里的template标签是个人习惯,也可以不用template标签,直接把slot和slot-scope属性写在其他标签里面。
但是要注意这里的slot 属性值要和columns里对应列对象的dataIndex值一致; slot-scope属性的值要和前面columns里的customRender属性值一致
图里都为 “phone”,那么这时在这个template标签下编辑的标签内容就会显示在计费号码这一列里面了
那么接下来取数据看图就明白了,dataIndex的值传过来之后直接用即可,隐私处理也是很简单粗暴,把手机号的字符串裁剪2串哈哈哈。

再来看看第二种自定义列数据的写法
这种写法是不需要操作标签的,直接在columns的对应列对象里去写就好,用过的小伙伴应该就能看出来在刚刚的图里就已经有第二种写法了:
在这里插入图片描述
直接将customRender写成函数,函数返回的值经过自定义处理即可,这个函数看官方文档可知有三个参数:
在这里插入图片描述
第一个text是对应列的行文本,第二个record是对应列的行数据,第三个则是对应列的行下标
这里由于需求只是限制单据时间在10位字符以内,所以直接取text去裁剪这列的字符串文本来实现。
在这里插入图片描述
裁掉了后面的小时分钟秒,留下年月日

上面是自定义某列数据的基本操作,主要是针对列本身的数据去做自定义,接下来看怎么实现多列数据关联自定义,即某列数据根据其他列数据的变化而做出不同的变化或者样式
刚刚在说到自定义列数据第二种写法的时候有看到一个参数record,这个参数是一个对象,包含的是行数据,也就是说这个对象有单行每一列的数据,知道这个对象之后那联动不就简单了,这里直接贴上第一张效果图的代码:
注意看name列插槽里面引用了record属性,这样就能取到级别level的数据了

 <!-- 模板名称颜色随级数变化 --><span slot="name" slot-scope="text,record" :class="record.level == 1 ? '' : 'tags-level-2'" :style="{'color' : record.level == 1 ? '#2875DF' : record.level == 2 ? '#F59100' : '#4F4F4F'}">{{record.name}}</span><!-- 级数名称随着级数变化 --><div slot="level" slot-scope="level" :style="{'color' : level == 1 ? '#2875DF' : level == 2 ? '#F59100' : '#4F4F4F'}">{{level == 1 ? '一级' : level == 2 ? '二级' : '加载中'}}</div>

在这里插入图片描述
在做列自定义的时候遇到最多次的问题就是忘记写scopedSlots属性,还有就是scopedSlots属性与标签里的不一致,改半天没有效果,非常蠢

再贴几张效果图
在这里插入图片描述
在这里插入图片描述
想自定义什么标签进去就自定义什么标签

这篇关于河豚随心记(二)antd-vue的a-table组件单列与多列的自定义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/313721

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

MySQL CTE (Common Table Expressions)示例全解析

《MySQLCTE(CommonTableExpressions)示例全解析》MySQL8.0引入CTE,支持递归查询,可创建临时命名结果集,提升复杂查询的可读性与维护性,适用于层次结构数据处... 目录基本语法CTE 主要特点非递归 CTE简单 CTE 示例多 CTE 示例递归 CTE基本递归 CTE 结

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码