vue3 + Ant Design 实现双表头表格(横向表头+纵向表头)

这篇具有很好参考价值的文章主要介绍了vue3 + Ant Design 实现双表头表格(横向表头+纵向表头)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、要实现的效果(纵向固定表头的表格,横向表头数量动态化

vue3 + Ant Design 实现双表头表格(横向表头+纵向表头)

二、这是后台返回的数据格式(以企业为数组,每个企业里有个站点数组pointFactors)

 vue3 + Ant Design 实现双表头表格(横向表头+纵向表头)

三、代码实现步骤

 (1)定义纵向固定表头

 1 // 纵向表头数组 tableColumns
 2 const tableColumns = ref([
 3   {
 4     label: "日(24小时)数据浓度均值",
 5     value: "monthMaxDayValue",
 6   },
 7   {
 8     label: "小时数据平均浓度均值",
 9     value: "monthHourValue",
10   },
11 ]);

 (2)动态生成横向表头(从接口获取数据

 1 //定义横向表头列 columns
 2  const columns = ref([]);
 3 //定义表格数据
 4  const list = ref([]); 
 5 
 6  // 先添加第一列
 7  columns.value = [
 8       {
 9         title: "",
10         dataIndex: "timeType",
11         width: 190,
12        fixed: "left",
13      },
14   ];
15 
16 //处理接口返回的数据data,动态拼接表头数组 columns
17 data.forEach(item => {
18      const obj = {
19         id: item.enterpriseId,
20         parentId: null,
21         title: item.enterpriseName,
22         align: "center",
23         children: [],
24       };
25       if (item.pointFactors.length) {
26           item.pointFactors.forEach(element => {
27               list.push({
28                 name: element.pointName,
29                 id: element.pointId,
30                 monthMaxDayValue: element.monthMaxDayValue,
31                 monthHourValue: element.monthHourValue,
32               });
33               const childObj = {
34                 id: element.pointId,
35                 parentId: item.enterpriseId,
36                 title: element.pointName,
37                 width: 130,
38                 align: "center",
39                 dataIndex: element.pointId,
40                 customRender: ({ record }) => {
41                   return record[element.pointId]
42                     ? record[element.pointId]
43                     : "-";
44                 },
45               };
46               obj.children.push(childObj);
47           });
48      }
49      columns.value.push(obj);
50 });

 (3)循环原始数据,生成组件需要的横向数据

 1 // tableColums  已定义的纵向表头
 2 // tableData   已定义的表格数组
 3 
 4  for (const tab of tableColumns.value) {
 5      const col: any = Object.create(null);
 6 
 7      list.forEach((item, index) => {
 8          col.timeType = tab.label;
 9          col[list[index + 0].id] = item[tab.value];
10      });
11      tableData.value.push(col);
12 }

(4)数据带入表格组件中

 <a-table
     :columns="columns"
     :data-source="tableData"
     :pagination="false"
     row-key="id"
     bordered
 />

 文章来源地址https://www.toymoban.com/news/detail-760480.html

到了这里,关于vue3 + Ant Design 实现双表头表格(横向表头+纵向表头)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ant design vue Tree组件叶子节点横向排列

    antdesignvue的树形组件要实现组件叶子节点横向排列有点坑,没有 配置属性,需要自己想办法。 要实现的效果 看tree组件的dom结构,父元素flex竖向布局,子项不论节点层级都在同一层!!! 难点在于想直接把其中某一些节点,横向布局排列。 我的实现思路核心还是通过给叶子

    2024年02月01日
    浏览(59)
  • Ant Design Vue 修改表格头部样式

    在网上搜了好多修改表格头部样式的,最后自己摸索出来,分享给大家,最后附上完整代码。 首先用到的是 customHeaderRow 这个API,类型是一个函数 此图是 console.log(conlumn); 打印出来的 可以看到每一列都有一个className

    2024年02月11日
    浏览(44)
  • vue3中使用ant-design-vue的layout组件实现动态导航栏功能(1~2级)

    目录 0 前言 1 准备工作 1.1 安装ant-design-vue 1.2 安装图标组件包 2 选择组件 3 路由文件 4 Vue导航页面 5 最终效果         最近在自己搞一个前后端小项目,前端想使用ant-design-vue的layout组件实现动态导航栏和面包屑,但是网上的资料较少,所以我就自己整合实现了一下,在此

    2024年02月15日
    浏览(46)
  • Ant Design Vue表格(Table)及分页(Pagination )使用

    最近在写一个新项目,UI框架用的是 Ant Design Vue ,因为之前一直用的 Element UI ,没有用过这个组件库,没想到二者区别这么大,因此踩了不少坑,其中就有 Table 和 Pagination ,花了一会时间才弄明白,在此记录并分享一下此次经历。 注意:是 Vue3 项目。 Table 的使用相对比较简

    2024年02月10日
    浏览(44)
  • vue3+ant design vue+ts实战【ant-design-vue组件库引入】

    🔥🔥更多内容见Ant Design Vue官方文档 🔥点击复习vue3【watch检测/监听】相关内容 👏👏👏一个好项目的编写不仅需要完美的逻辑,以及相应的技术,同时也需要一个 设计规范的高质量UI组件库 。👏👏👏本期文章将会详细讲解 Ant Design of Vue 组件库的 安装、使用、引入 。

    2024年02月02日
    浏览(50)
  • ant-design-vue表格Table行内新增、编辑、删除

    ant-design-vue表格Table进行单元格内新增、编辑、删除等操作 如图所示:

    2024年02月14日
    浏览(44)
  • Ant Design Vue Table 嵌套子表格的数据刷新方法

    父子组件各自负责,在table中嵌套了子表格后,首次加载表格时,父组件会实例化子组件并传递参数,折叠后再次展开时,只会传递参数,子组件的数据刷新就属于子表格了。如 @@@code template #expandedRowRender=\\\"{ record }\\\" originIndex style= \\\"margin-left: 55px; margin-right: 50px; background-color:

    2024年02月09日
    浏览(37)
  • ant-design-vue的table表格行合并和列合并

    场景说明: 1、列合并:需要在表格最后一列进行合并,如图: 思路:相当于是第二列的最后一栏(colSpan )占比5列,第2列后面的4列最后一行(colSpan )占比0。 代码示例 行合并需求如图:将指定列的多行合并成一行 思路:和合并列差不多;第一列的第一行和第二行要合并

    2024年02月16日
    浏览(40)
  • vue3中el-table实现多表头并表格合并行或列

    1、el-table中添加事件 :span-method=\\\"genderSpanCity\\\" 2、js添加函数 效果图为

    2024年01月23日
    浏览(56)
  • 保姆级教程:Ant Design Vue中 a-table 嵌套子表格

    前端为Ant Design Vue 版本为1.6.2,使用的是vue2 Ant Design Vue中 a-table 嵌套子表格,说的可能稍微墨迹了点,不过重点内容都说的比较详细,利于新人理解,高手可以自取完整代码 下图为官网图,会在每行最前面多一个加号,点击后会展开,看到子表格的数据 子格嵌套从代码层简

    2024年02月01日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包