河豚随心记(二)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

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

css渐变色背景|<gradient示例详解

《css渐变色背景|<gradient示例详解》CSS渐变是一种从一种颜色平滑过渡到另一种颜色的效果,可以作为元素的背景,它包括线性渐变、径向渐变和锥形渐变,本文介绍css渐变色背景|<gradien... 使用渐变色作为背景可以直接将渐China编程变色用作元素的背景,可以看做是一种特殊的背景图片。(是作为背

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element