表格的单元格合并和表头的合并——vxe-table

vxe-table的官网:https://vxetable.cn/#/table/advanced/mergeCell

在你的项目中下载安装完成后,先在main.js文件中引入:

import VXETable from 'vxe-table'
import 'vxe-table/lib/style.css'
Vue.use(VXETable)

一、单元格合并

效果图:在这里插入图片描述
代码:

<template>
  <div>
    <vxe-table
      border
      resizable
      align="center"
      :span-method="mergeRowMethod"
      :data="tableData3">
      <vxe-column field="key" title="标题1"></vxe-column>
      <vxe-column field="key1" title="标题2"></vxe-column>
      <vxe-column field="max" title="标题5"></vxe-column>
      <vxe-column field="min" title="标题6"></vxe-column>
      <vxe-column field="height" title="标题7"></vxe-column>
      <vxe-column field="low" title="标题8"></vxe-column>
      <vxe-column field="" title="操作">
        <template scope="scope">
          <span @click="updateClick(scope.row,scope.rowIndex)">操作</span>
          <span style="margin-left: 15px;">删除</span>
        </template>
      </vxe-column>
    </vxe-table>
  </div>
</template>

<script>
export default {
  data () {
    return {
      tableData3: [
        { id: 10001, key: '内容1', key1: '22%', max: 20, min: 10, height: 27, low: 19 },
        { id: 10002, key: '内容1', key1: '22%', max: 20, min: 10, height: 27, low: 19 },
        { id: 10002, key: '内容1', key1: '22%', max: 20, min: 10, height: 27, low: 19 },
        { id: 10003, key: '内容2', key1: '35%', max: 20, min: 10, height: 27, low: 19 },
        { id: 10004, key: '内容2', key1: '35%', max: 20, min: 10, height: 27, low: 19 },
      ],
    }
  },
  methods: {
    // 通用行合并函数(将相同多列数据合并为一行)
    mergeRowMethod ({ row, _rowIndex, column, visibleData }) {
      // 你需要哪一列进行合并,就写他的字段名
      const fields = ['key', 'key1']
      const cellValue = row[column.property]
      if (cellValue && fields.includes(column.property)) {
        const prevRow = visibleData[_rowIndex - 1]
        let nextRow = visibleData[_rowIndex + 1]
        if (prevRow && prevRow[column.property] === cellValue) {
          return { rowspan: 0, colspan: 0 }
        } else {
          let countRowspan = 1
          while (nextRow && nextRow[column.property] === cellValue) {
            nextRow = visibleData[++countRowspan + _rowIndex]
          }
          if (countRowspan > 1) {
            return { rowspan: countRowspan, colspan: 1 }
          }
        }
      }
    },
    updateClick (row, rowIndex) {
      console.log(row, rowIndex);
    },
  }
}
</script>

如果数据相同,但是你不想要他合并,例如:
在这里插入图片描述
如上图,虽然内容1和内容2后面对应的百分比都是22%,但是你不希望该单元格整体合并,你可以将标题1和标题2的field属性改成同一个参数名,就可以解决了,如下:

<template>
  <div>
    <vxe-table
      border
      resizable
      align="center"
      :span-method="mergeRowMethod"
      :data="tableData3">
      <vxe-column field="key" title="标题1"></vxe-column>
      <vxe-column field="key" title="标题2">
        <template slot-scope="scope">
          {{ scope.row.key1 }}
        </template>
      </vxe-column>
      <vxe-column field="max" title="标题5"></vxe-column>
      <vxe-column field="min" title="标题6"></vxe-column>
      <vxe-column field="height" title="标题7"></vxe-column>
      <vxe-column field="low" title="标题8"></vxe-column>
      <vxe-column field="" title="操作">
        <template scope="scope">
          <span @click="updateClick(scope.row,scope.rowIndex)">操作</span>
          <span style="margin-left: 15px;">删除</span>
        </template>
      </vxe-column>
    </vxe-table>
  </div>
</template>

二、表头合并

效果图:
在这里插入图片描述
代码:
columns里的field属性和data里的属性名是对应的,例如{ field: ‘address’, title: ‘标题3-4’, },标题3-4这一列展示的就是data里的address所对应的值

<template>
	<div>
  		<vxe-grid v-bind="gridOptions"></vxe-grid>
	</div>
</template>
<script>
export default {
  data () {
    return {
      gridOptions: {
        border: true,
        resizable: true,
        align: 'center',
        // 分组列头,通过 children 定义子列
        columns: [
          {
            title: '标题1',
            children: [
              {
                field: '', title: '标题1-1',
                children: [
                  { field: 'bank', title: '' },
                ]
              },
            ]
          },
          {
            title: '标题2',
            children: [
              {
                field: '',
                title: '20%',
                children: [
                  { field: 'ran', title: '标题2-1', },
                  { field: 'rank', title: '标题2-2', },
                  { field: 'ranki', title: '标题2-3', },
                  { field: 'rankin', title: '标题2-4', },
                ]
              },
            ]
          },
          {
            title: '标题3',
            children: [
              {
                field: '',
                title: '35%',
                children: [
                  { field: 'role', title: '标题3-1', },
                  { field: 'sex', title: '标题3-2', },
                  { field: 'age', title: '标题3-3', },
                  { field: 'address', title: '标题3-4', },
                ]
              },
            ]
          },
          {
            field: 'data4',
            title: '标题4',
          },
        ],
        data: [
          { id: 10001, bank: '工商银行', data4: 1, ran: '1', rank: '2', ranki: '3', rankin: '4', role: '35', sex: 'Man', age: 28, address: 'Shenzhen' },
          { id: 10002, bank: '交通银行', data4: 2, ran: '2', rank: '2', ranki: '3', rankin: '4', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },
          { id: 10003, bank: '工农银行', data4: 3, ran: '3', rank: '2', ranki: '3', rankin: '4', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },
          { id: 10004, bank: '招商银行', data4: 4, ran: '4', rank: '2', ranki: '3', rankin: '4', role: 'Designer', sex: 'Women', age: 23, address: 'Shenzhen' },
        ]
      },
    }
  },
  methods: {
  }
}
</script>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

时间序列预测:基于PyTorch框架的循环神经网络(RNN)实现销量预测

之前随手一写&#xff0c;没想到做预测的同学还挺多&#xff0c;但是之前那个效果并不好&#xff0c;于是在之前的基础上重新修改完善&#xff0c;到了现在这一步才感觉预测算是初步能应用。 上文地址&#xff1a;LSTM模型预测时间序列&#xff1a;根据历史销量数据预测商品未…

开源代码分享(24)-考虑柔性负荷的综合能源系统低碳经济优化调度

参考文献&#xff1a; [1]薛开阳,楚瀛,凌梓,等.考虑柔性负荷的综合能源系统低碳经济优化调度[J].可再生能源, 2019, 37(08): 1206-1213. [2]刘蓉晖,李子林,杨秀,等.考虑用户侧柔性负荷的社区综合能源系统日前优化调度[J].太阳能学报, 2019, 40(10):2842-2850. 1.基本原理 基…

智慧药房系统源码解析:开发高效医保购药小程序教学

今天&#xff0c;小编将为大家讲解智慧药房系统的源码结构及其开发过程&#xff0c;旨在为开发者提供一份高效、可靠的指南。 一、系统架构概述 智慧药房系统由前端和后端两部分组成。医保购药小程序则是智慧药房系统的一个重要应用场景&#xff0c;其功能主要包括药品浏览、医…

学浪app视频下载方法,让你随时随地观看

学浪app客户端现在越来越难&#xff0c;不但禁止了录屏软件&#xff0c;而且连抓包都禁止了&#xff0c;其实学浪的难度很高&#xff0c;我只是很幸运&#xff0c;找到了网页进入学浪的方法&#xff0c;但是我知道这个方法不稳定&#xff0c;所以就做成了软件&#xff0c;大家直…

Vscode上使用Clang,MSVC, MinGW, (Release, Debug)开发c++完全配置教程(包含常见错误),不断更新中.....

1.VSCode报错头文件找不到 clang(pp_file_not_found) 在Fallback Flags中添加 -I&#xff08;是-include的意思&#xff0c;链接你的编译器对应头文件地址&#xff0c;比如我下面的是MSVC的地址&#xff09; 问题得到解决~

成为程序员后,我才真正明白的那些事儿

嗨&#xff0c;我是小路。一名努力向上生长&#xff0c;提高职业能力的90后程序员。今天想和大家分享一下踏入编程世界&#xff0c;成为一名程序员以来&#xff0c;那些让我恍然大悟、受益匪浅的道理。无论你是正在考虑转行编程&#xff0c;还是已经在路上持续精进程序猿们&…

Java集合相关的List、Set、Map基础知识

目录 一、集合介绍 二、List 三、Map HashMap的数据结构 如何理解红黑树 四、set 一、集合介绍 在Java中&#xff0c;集合是一种用于存储对象的数据结构&#xff0c;它提供了一种更加灵活和强大的方式来处理和操作数据。Java集合框架提供了一系列接口和类&#xff0c;用…

leetcode1143. 最长公共子序列(ACM模式解法)

题目描述 给你一个序列X和另一个序列Z&#xff0c;当Z中的所有元素都在X中存在&#xff0c;并且在X中的下标顺序是严格递增的&#xff0c;那么就把Z叫做X的子序列。 例如&#xff1a;Z是序列X的一个子序列&#xff0c;Z中的元素在X中的下标序列为<1,2,4,6>。 现给你两个…

界面组件DevExpress Blazor UI v23.2 - 支持.NET 8、全新的项目模版

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验&#xff0c;这个UI自建库提供了一套全面的原生Blazor UI组件&#xff08;包括Pivot Grid、调度程序、图表、数据编辑器和报表等&#xff09;。 DevExpress Blazor控件目前已经升级…

4/26发布发布:缺了好几次的作业,矩形法+二分法求下面方程根+顺序查找n+程序填空,补一下还有八九没做,炸8412 字不是干的,哈哈哈

OK了发布 你说的对&#xff0c;但是釜山行里逃过了六节车厢的丧尸&#xff0c;却逃不过一节车厢的人心&#xff0c;这说明了什么&#xff1f;说明一节更比六节强&#xff0c;王中王&#xff0c;火腿肠&#xff0c;果冻我要喜之郎&#xff0c;上课要听鹏哥讲&#xff01; 目录…

合合信息:acge_text_embedding 文本向量化模型登顶 C-MTEB 中文榜单

近期&#xff0c;合合信息的 acge_text_embedding 文本向量化模型在最近的比赛中获得了 MTEB 中文榜单&#xff08;C-MTEB&#xff09;榜首&#xff01;C-MTEB 作为中文文本向量性能的评测标准&#xff0c;以其全面性和权威性在业内享有盛誉值得关注。接下来让我们仔细分析一下…

SL1581 耐压30V蓝牙音响应用 24降5V 12降5V 外围简单

SL1581蓝牙音响应用方案是一种高效、稳定的电源管理方案&#xff0c;专为蓝牙音响设备设计。该方案采用耐压30V降压5V的设计&#xff0c;能够有效地将高电压降至适合蓝牙音响设备工作的低电压&#xff0c;保证设备的稳定运行。同时&#xff0c;外围电路设计简单&#xff0c;方便…

分布式与一致性协议之CAP(五)

CAP 理论 如何使用BASE理论 以InfluxDB系统中DATA节点的集群实现为例。DATA节点的核心功能是读和写&#xff0c;所以基本可用是指读和写的基本可用。我们可以通过分片和多副本实现读和写的基本可用。也就是说&#xff0c;将同一业务的数据先分片&#xff0c;再以多份副本的形…

C语言基础知识笔记——万字学习记录

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本文主要参考浙大翁恺老师的C语言讲解以及其他博主的C语言学习笔记&#xff0c;进而梳理C语言的基础知识&#xff0c;为后续系统性学习数据结构和其他语言等知识夯实一定的基础。&#xff08;其他博主学习笔记的链接包括&#x…

【运维】Git 分支管理

一般来讲&#xff0c;系统代码需要经过研发、测试、生产三种环境。那么在Git上如何管理分支&#xff0c;才不会乱&#xff1f;在线上生产环境有问题时有条不紊的解决。 经过发展&#xff0c;有一个Git Flow原理可帮助解决。设置以下几种分支。 master——production生产环境。…

Fusion360导入STL和OBJ文件转化为实体文件自由编辑

Fusion360导入STL和OBJ文件转化为实体文件自由编辑 1.概述 在模型网站上下载的3D打印文件通常是STL和OBJ格式文件&#xff0c;该类型文件都是网格类型的文件&#xff0c;Fusion360只可以对实体文件进行编辑。因此不能对他们直接修改&#xff0c;需要导入文件将他们转为实体文…

Linux多进程(五) 进程池 C++实现

一、进程池的概念 1.1、什么是进程池 进程池是一种并发编程模式&#xff0c;用于管理和重用多个处理任务的进程。它通常用于需要频繁创建和销毁进程的情况&#xff0c;以避免因此产生的开销。 进程池的优点包括&#xff1a; 减少进程创建销毁的开销&#xff1a;避免频繁创建和…

笔记:编写程序,分别采用面向对象和 pyplot 快捷函数的方式绘制正弦曲线 和余弦曲线。 提示:使用 sin()或 cos()函数生成正弦值或余弦值。

文章目录 前言一、面向对象和 pyplot 快捷函数的方式是什么&#xff1f;二、编写代码面向对象的方法&#xff1a;使用 pyplot 快捷函数的方法&#xff1a; 总结 前言 本文将探讨如何使用编程语言编写程序&#xff0c;通过两种不同的方法绘制正弦曲线和余弦曲线。我们将分别采用…

备考2024年小学生古诗文大会:做做10道历年真题和知识点(持续)

根据往年的安排&#xff0c;2024年上海市小学生古诗文大会预计还有一个月就将启动。我们继续来随机看10道往年的上海小学生古诗文大会真题&#xff0c;这些题目来自我去重、合并后的1700在线题库&#xff0c;每道题我都提供了参考答案和独家解析。 根据往期的经验&#xff0c;只…

【网络原理】TCP协议的相关机制(确认应答、超时重传)

系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】Java网络编程中的基本概念及实现UDP、TCP客户端服务器程序&#xff08;万字博文&#xff09; 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制&#xff08;CRC算法、MD5算法&#xff09; 文章目…