vue+antd——table组件实现动态列+表头下拉选择功能——技能提升

news2025/1/10 1:09:14

Table 表格

展示行列数据。

何时使用

当有大量结构化的数据需要展现时;
当需要对数据进行排序、搜索、分页、自定义操作等复杂行为时。

最近在写vue+antd的框架,遇到一个需求:就是要实现table表格的动态列,并且相应的表头要实现下拉选择的效果,最后点击保存时,要将下拉的内容拼接到对应的列上面去。

在Table中,dataSource和columns里的数据都需要指定key值。对于dataSource默认将每列数据的key作为唯一标识。
如果数据中没有这个属性,务必使用rowKey来指定数据列的主键。如果没有指定,控制台会出现缺少key的提示,表格组件也会出现各类奇怪的错误。

这里写目录标题

  • Table 表格
    • 何时使用
  • 效果图
  • table组件实现动态列
  • table组件表头自定义——slots: { title: '无主列' + index }
          • 1.使用`slots:{title:'无主列'}`
          • 2.在`table`组件中使用`slot='xxxx'`的方式来处理

效果图

在这里插入图片描述
在这里插入图片描述

上面的[序号,物料名称,型号,品牌,封装,参数,位号,供料方式,单片用量,需求用量,类目,类别,SMT套数]都是固定列
动态列是上图中红框框住的部分

table组件实现动态列+表头下拉选择功能

  • Table 表格
    • 何时使用
  • 效果图
  • table组件实现动态列
  • table组件表头自定义——slots: { title: '无主列' + index }
          • 1.使用`slots:{title:'无主列'}`
          • 2.在`table`组件中使用`slot='xxxx'`的方式来处理

table组件实现动态列

先看数据结构:
在这里插入图片描述
要求:根据第一条数据中的noBelongCols字段,创建动态列。

1.tableList:table表格列表数据
2.noBelongCols:动态列参数,长度就是动态列的长度
3.noBelongTypes:表头的下拉列参数

changeColumns(){
	let noBelongCols =
        this.tableList && this.tableList[0] && this.tableList[0].noBelongCols;
      console.log('noBelongCols', noBelongCols, this.columns);
      this.noBelongCols = noBelongCols;
      this.noBelongTypes = [];
      noBelongCols &&
        noBelongCols.forEach((be, index) => {
          this.columns.push({
            slots: { title: '无主列' + index },
            type: 'string',
            dataIndex: '无主列' + index,
            width: 110,
            scopedSlots: { customRender: '无主列' + index },
          });
          this.noBelongTypes.push(undefined);
          this.tableList.forEach((table) => {
            table['无主列' + index] = table['noBelongCols'][index];
          });
        });
      this.columns.push({
        title: '操作',
        scopedSlots: { customRender: 'action' },
        align: 'center',
        width: 60,
        fixed: 'right',
      });
}

table组件表头自定义——slots: { title: ‘无主列’ + index }

由于动态列的长度不固定,因此需要用v-for进行遍历,遍历出多列。

 v-for="(be, bIndex) in noBelongCols" :key="bIndex" :slot="'无主列' + bIndex"
<a-table
  :rowKey="(r, i) => i.toString()"
  :columns="columns"
  :dataSource="tableList"
>
  <div
    v-for="(be, bIndex) in noBelongCols"
    :key="bIndex"
    :slot="'无主列' + bIndex"
  >
    <a-select v-model="noBelongTypes[bIndex]" style="width: 100px">
      <a-select-option
        v-for="item in titleOptions"
        :key="item"
        :value="item"
        >{{ item }}</a-select-option
      >
    </a-select>
  </div>
</a-table>

表格头部自定义的处理方法:

1.使用slots:{title:'无主列'}

自定义表头:slots:{title:'无主列'+index}
自定义表格内容:scopedSlots:{customRender:'无主列'+index}

遍历动态列的时候,设置自定义表头和自定义表格内容

this.columns.push({
  slots: { title: '无主列' + index },
  type: 'string',
  dataIndex: '无主列' + index,
  width: 110,
  scopedSlots: { customRender: '无主列' + index },
});
2.在table组件中使用slot='xxxx'的方式来处理

最终代码如下:

<div
  v-for="(be, bIndex) in noBelongCols"
  :key="bIndex"
  :slot="'无主列' + bIndex"
>
  <a-select v-model="noBelongTypes[bIndex]" style="width: 100px">
    <a-select-option
      v-for="item in titleOptions"
      :key="item"
      :value="item"
      >{{ item }}</a-select-option
    >
  </a-select>
</div>

完成!!!多多积累,多多收获!!!

下面内容与文章相关不大,只是为了凑字数,可忽略!!!

table组件,主要用于大量结构化的数据需要展现时使用,在各端应用开发中使用非常广泛,达到几乎必用的地步。在原生ios开发中,通常需要自定义cell来进行数据的展示,antd 的table组件功能相当强大,能实现的功能覆盖范围也相当广泛,本文只是简单介绍一下最基本的用法,有兴趣的可以直接去官网上看,示例更丰富,而且都带有效果展示。
首先,指定表格的数据源 dataSource 为一个数组:

在数据较多,会自动分页展示,每一列会根据内容的长度自动撑长,上手使用非常简单,通常PC上对表格会有一些编辑等操作,在原生ios中需要自己布局、定义方法等一系列操作,antd table则只需要在列名称中添加链接就好:

自定义andt table表格样式的方式也比较多,上述方法可能会引起全局改变,如果只是改变代码中一个table,则需要注意以下。以上只是介绍的最最最基础的用法,还有很多高级一些的方法大家可以去官网细看。

值得一提的是,表格的样式是默认的,需要修改的话要自己改变样式,可以参考以下方法:

.ant-table{
  :global {
    width: 98%;
    margin-left: 1%;
    .ant-table-thead > tr > th, .ant-table-tbody > tr > td {
        padding: 6px 8px !important;
    }
    .ant-table-thead > tr > th {
        background-color: #242542;
        color: white;
    }
    .ant-table-thead > tr > th:hover {
        background-color: #535781;
    }
    .ant-table-thead > tr > th.ant-table-column-has-actions.ant-table-column-has-sorters:hover {
        background: rgb(201, 223, 11);
    }
    .ant-table-content { 
      background-color: #343655; 
      color: white;
     }
    .ant-table-tbody > tr:hover > td{
      background-color:rgba(106, 178, 245, 0.5) ! important;
     }
  }
}

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

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

相关文章

Python实现SSA智能麻雀搜索算法优化XGBoost回归模型(XGBRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法&#xff0c;在2020年提出&a…

【34. 在排序数组中查找元素的第一个和最后一个位置】

目录 1.题目解析2.算法思路3.代码实现 1.题目解析 2.算法思路 3.代码实现 class Solution { public:vector<int> searchRange(vector<int>& nums, int target) {if(nums.size()0){return {-1,-1};}vector<int> ret;int left0,rightnums.size()-1;while(…

C++:类和对象(二)

本文主要介绍&#xff1a;构造函数、析构函数、拷贝构造函数、赋值运算符重载、const成员函数、取地址及const取地址操作符重载。 目录 一、类的六个默认成员函数 二、构造函数 1.概念 2.特性 三、析构函数 1.概念 2.特性 四、拷贝构造函数 1.概念 2.特征 五、赋值…

ORB-SLAM2算法15之回环检测线程Loop Closing

文章目录 0 引言1 概述2 回环主函数3 回环检测4 计算Sim3变换5 回环矫正 0 引言 ORB-SLAM2算法7详细了解了System主类和多线程、ORB-SLAM2学习笔记8详细了解了图像特征点提取和描述子的生成、ORB-SLAM2算法9详细了解了图像帧、ORB-SLAM2算法10详细了解了图像关键帧、ORB-SLAM2…

网络通信深入解析:探索TCP/IP模型

http协议访问web 你知道在我们的网页浏览器的地址当中输入url&#xff0c;未必是如何呈现的吗&#xff1f; web浏览器根据地址栏中指定的url&#xff0c;从web服务器获取文件资源&#xff08;resource&#xff09;等信息&#xff0c;从而显示出web页面。web使用HTTP&#xff08…

OSI七层模型简介

七层模型&#xff0c;亦称OSI&#xff08;Open System Interconnection&#xff09;。参考模型是国际标准化组织&#xff08;ISO&#xff09;制定的一个用于计算机或通信系统间互联的标准体系&#xff0c;一般称为OSI参考模型或七层模型 一、OSI参考模型 1、OSI的来源 OSI&am…

多媒体透明屏,在户外广告领域中,有哪些应用展示?

多媒体透明屏是一种新型的显示技术&#xff0c;它能够将图像和视频直接投射到透明的屏幕上&#xff0c;使得观众可以同时看到屏幕后面的实物。 这种技术在广告、展览、商场等场合有着广泛的应用前景。 多媒体透明屏的原理是利用透明显示技术&#xff0c;将图像和视频通过光学…

安防监控/视频汇聚/云存储/AI视频智能算法引擎系统:遛狗检测算法详解

根据最新修订发布的《中华人民共和国动物防疫法》规定&#xff1a;遛狗不栓绳&#xff0c;养狗不办证、未定期接种疫苗等行为都是违法行为。作为一个合格的“铲屎官"出门遛狗一定要牵好狗绳&#xff0c;保护他人和爱犬的安全。但就算法律明文规定&#xff0c;还是有很多人…

刷题笔记18——数组查缺补漏、二分搜索变体

人就是这样的&#xff0c;想来想去&#xff0c;犹豫来犹豫去&#xff0c;觉得自己没有准备好&#xff0c;勇气没攒够&#xff0c;其实只要迈出去了那一步&#xff0c;就会发现其实所有的一切&#xff0c;早就准备好了。——巫哲Q《撒野》 528. 按权重随机选择 轮盘赌 class S…

软件设计师(十)网络与信息安全基础知识

计算机网络是由多台计算机组成的系统&#xff0c;与传统的单机系统、多机系统相比有很大的区别。 一、网络概述 计算机网络是计算机技术与通信技术相结合的产物&#xff0c;它实现了远程通信、远程信息处理和资源共享。 1、计算机网络的概念 计算机网络的定义是利用通信设备…

leetcode687. 最长同值路径(java)

最长同值路径 题目描述DFS 深度遍历代码演示 题目描述 难度 - 中等 LC - 687. 最长同值路径 给定一个二叉树的 root &#xff0c;返回 最长的路径的长度 &#xff0c;这个路径中的 每个节点具有相同值 。 这条路径可以经过也可以不经过根节点。 两个节点之间的路径长度 由它们之…

序列到序列学习(seq2seq)

permute(1,0,2)&#xff0c;将batch_size 放在中间state 最后一个时刻&#xff0c;每个层的输出

基于SSRF漏洞复现引发的CRLF之(session会话固定+XSS)组合拳利用思路

文章目录 前言Redis通信协议RESPSSRF利用HTTP头注入Redis通信协议Getshell引发思考引出CRLF漏洞CRLF概念漏洞危害漏洞检测挖掘技巧修复建议 引出会话固定漏洞漏洞原理漏洞检测漏洞利用漏洞修复 CRLF会话固定漏洞攻击组合实战案例漏洞利用原理 CRLFXSS攻击实战案例 总结 前言 ​…

网络技术学习十三:DNS(域名服务器)

DNS 域名 产生背景 通过IP地址访问目标主机&#xff0c;不便于记忆 通过容易记忆的域名来标识主机位置 域名的树形层次化结构 根域 领级域 主机所处的国家/区域&#xff0c;注册人的性质 二级域 注册人自行创建的名称 主机名 区域内部的主机的名称 由注册人自行创建…

基于语雀编辑器的在线文档编辑与查看

概述 语雀是一个非常优秀的文档和知识库工具&#xff0c;其编辑器更是非常好用&#xff0c;虽无开源版本&#xff0c;但有编译好的可以使用。本文基于语雀编辑器实现在线文档的编辑与文章的预览。 实现效果 实现 参考语雀编辑器官方文档&#xff0c;其实现需要引入以下文件&…

Android 9.0 网络之netd详解

一、DHCP流程 分析netd之前先了解一下网络自动获取IP流程&#xff0c;借鉴下图流程查看代码&#xff1a; &#xff08;1&#xff09;WIFI扫描到可用网络后进行连接&#xff0c;代码路径&#xff1a;\frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiStateMa…

计算机安全学习笔记(IV):基于角色的访问控制 - RBAC

RBAC(Role-Based Access Control)基于用户在系统中设定的角色而不是用户的身份。一般来说&#xff0c;RBAC模型定义角色为组织中的一项工作职责&#xff0c;RBAC系统给角色而不是给单独的用户分配访问权。用户根据他们的职责被静态地或动态地分配给不同的角色。 RBAC模型间的关…

STM32串口DMA+空闲中断接收数据-基于CubeMX创建

串口空闲中断&#xff08;UART_IT_IDLE&#xff09;&#xff1a;串口接收数据&#xff0c;超过一个字节的时间内没有再接收到数据的时候发生的 好处&#xff1a;与传统的判断\r,\n为结束位相比&#xff0c;空闲中断判断串口数据接收完毕准确且迅速 缺点&#xff1a;串口持续不…

分布式系统常用的模式

分布式系统常用的模式 Ambassador 名称&#xff1a;“大使”模式 介绍&#xff1a;作为应用程序和其他服务的“中间人”&#xff0c;负责应用程序和其他服务之间的通信&#xff0c;包括日志、监控或重试处理等任务。 举例&#xff1a;K8S使用Envoy作为一个“大使”来简化服务…

[C语言] 结构体

结构体类型的声明 结构体初始化 结构体成员访问 结构体传参 目录 1. 结构体的声明 1.1 结构的基础知识 1.2 结构的声明 1.3 结构成员的类型 1.4 结构体变量的定义和初始化 2. 结构体成员的访问 3. 结构体传参 1. 结构体的声明 1.1 结构的基础知识 结构是一些值的集…