首页 > 其他分享 >el-table列相同数据合并行

el-table列相同数据合并行

时间:2023-11-27 13:34:03浏览次数:32  
标签:el name 普陀区 王小虎 合并 address table 2016 05

1、效果

2、数据

[
    {
        "date":"2016-05-02",
        "name":"王小虎",
        "address":"上海市普陀区金沙江路 1518 弄"
    },
    {
        "date":"2016-05-04",
        "name":"王小虎",
        "address":"上海市普陀区金沙江路 1517 弄"
    },
    {
        "date":"2016-05-01",
        "name":"王小虎",
        "address":"上海市普陀区金沙江路 1519 弄"
    },
    {
        "date":"2016-05-03",
        "name":"王小虎",
        "address":"上海市普陀区金沙江路 1516 弄"
    }
]

3、代码

<template>
    <div>
        <el-table class="m-table m-t-20" :data="list" :span-method="objectSpanMethod" style="width: 100%" border center>
            <el-table-column prop="date" label="日期" width="90"></el-table-column>
            <el-table-column prop="name" label="名称" width="180"></el-table-column>
            <el-table-column prop="address" label="地址" width="200"></el-table-column>
        </el-table>
    </div>
</template>


<script>
export default {
    data() {
        return {
            spanArr: [],//用于存放每一行记录的合并数
            list: [{
                date: '2016-05-02',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1518 弄'
              }, {
                date: '2016-05-04',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1517 弄'
              }, {
                date: '2016-05-01',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1519 弄'
              }, {
                date: '2016-05-03',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1516 弄'
            }],
        }
    },    
    created() {
        this.getSpanArr(this.list)
    },
    methods: {
        getSpanArr(data) {
            this.pos = 0
            for (let i = 0; i < data.length; i++) {
                if (i === 0) {
                    // 如果是第一条记录(即索引是0的时候),向数组中加入1
                    this.spanArr.push(1)
                    this.pos = 0
                } else {
                    if (data[i].name === data[i-1].name) {
                        // 如果name相等就累加,并且push 0 (这里的判断视自己的判定依据改变)
                        this.spanArr[this.pos] += 1
                        this.spanArr.push(0)
                    } else {
                        // 不相等push 1
                        this.spanArr.push(1)
                        this.pos = i
                    }
                }
            }
        },
        objectSpanMethod({row, column, rowIndex, columnIndex}) {
            // 用于设置要合并的列 0 表示第一列
            // 名称 跨行显示
            if ([1].includes(columnIndex)) {
                const cRow = this.spanArr[rowIndex]
                const cCol = cRow > 0 ? 1 : 0
                return {
                    rowspan: cRow, // 合并的行数
                    colspan: cCol // 合并的列数,为0表示不显示
                }
            }
        }
    },
}
</script>

 

标签:el,name,普陀区,王小虎,合并,address,table,2016,05
From: https://www.cnblogs.com/larrywang/p/17859030.html

相关文章

  • 分析安科瑞Acrel-EIOT能源物联网平台的工作原理以及应用场景—李笑曼
    安科瑞电气股份有限公司李笑曼壹柒捌贰壹壹贰玖柒叁叁1功能Acrel-EIoT能源物联网开放平台是一套基于物联网数据中台,建立统一的上下行数据标准,为互联网用户提供能源物联网数据服务的平台。用户仅需购买安科瑞物联网传感器,选配网关,自行安装后扫码即可使用手机和电脑得到所需的行......
  • tableau用数值呈现条形图的总计
     创建计算字段创建计算字段:销售额总计,键入函数:IFSize()=1THEN0ELSESum([销售额])END 创建视图将度量“销售额”拖放至列,将维度“子类别”拖放至行,降序排序。将列上的“销售额”胶囊拖放至“标记”卡的标签中,再将计算字段“销售额总计”拖放至列。 单击顶部菜单......
  • FlashDuty Changelog 2023-10-30 | 告警路由与 Slack 应用
    FlashDuty:一站式告警响应平台,前往此地址免费体验!告警路由什么是告警路由?FlashDuty已经与Zabbix、Prometheus等监控系统实现无缝集成,通过一个简单的webhook就可以把告警系统产生的所有告警事件推送到FlashDuty来管理。每个告警事件的重要性、紧急程度和所属团队可能不同,我们期望可以......
  • 如何在 CentOS 6.3 上安装 libboost-devel
    您需要安装该boost-devel软件包。包描述:boost-devel.x86_64:BoostC++头文件和共享开发库yuminstallboost-develRunCodeOnline(SandboxCodePlaygroud)  ......
  • Day04:编写第一个代码“Hello World!”
    HelloWorld随便新建一个文件夹,存放代码新建一个java文件文件后缀名为.javaHello.java[注意点]系统显示后缀名编写代码publicclassHello{ publicstaticvoidmain(String[]args){ System.out.print("Hello,World!"); }}java文件路径前加CMD运行,打开控制......
  • Xshell终端中文乱码解决方法
    Xshell是用于远程连接Linux的终端软件。使用过程中会出险乱码的问题,主要原因是Xshll与Linux编码不一致导致的。解决办法如下:使用locale命令查看Liunx编码;修改Xshell编码选择会话,鼠标右键点击属性;选择“终端”,选择与Linux一致的编码;确定,重新连接Linux全文完......
  • shell变量类型--read--if语句正侧表达式(扩展)文本处理器、awk命令
    变量:是容器,值是可变的,变化的。作用就是增强脚本的灵活性。各种shell环境中都使用了“变量”的概念。shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应变化。通过使用变量,shell程序能够提供更加灵活的功能,适应性更强。变量(数......
  • shell变量类型--read--if语句正侧表达式(扩展)文本处理器、awk命令
    变量:是容器,值是可变的,变化的。作用就是增强脚本的灵活性。各种shell环境中都使用了“变量”的概念。shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应变化。通过使用变量,shell程序能够提供更加灵活的功能,适应性更强。变量(数......
  • Element的安装与基本使用
    一.什么是Element?Element是饿了么团队研发的一套为开发者与设计师等准备的基于Vue2.0的桌面端组件库,使开发人员可以快速拼凑出一套页面组件:组成网页的部件,例如:超链接,按钮,图片,表格,表单,分页条等Element官网二.Element的安装(Vscode)1.右建项目-在集成终端中打开如果没有出......
  • SQL JOIN 子句:合并多个表中相关行的完整指南
    SQLJOINJOIN子句用于基于它们之间的相关列合并来自两个或更多表的行。让我们看一下“Orders”表的一部分选择:OrderIDCustomerIDOrderDate1030821996-09-1810309371996-09-1910310771996-09-20然后,看一下“Customers”表的一部分选择:CustomerID......