elementUI table表格相同元素合并行----支持多列

效果图如下:

vue2代码如下:
只粘贴了js方法哦,

methods: {

// 设置合并行

setrowspans() {

const columns = ['name', 'value']; // 需要合并的列名

// 为每个需要合并的列设置默认 rowspan

this.tableData.forEach(row => {

columns.forEach(col => {

row[col + 'Rowspan'] = 1; // 例如:row['name1Rowspan'] = 1

});

});

columns.forEach((col, index) => {
    for (let i = 0; i < this.tableData.length; i++) {
        // 这里进行判断
        // 如果当前行的列数据和下一行的列数据相等
        // 就把当前rowspan + 1,下一行的rowspan - 1
        for (let j = i + 1; j < this.tableData.length; j++) {
            if (this.tableData[i][col] === this.tableData[j][col]) {
                this.tableData[i][col + 'Rowspan']++;
                this.tableData[j][col + 'Rowspan']--;
            } else {
                break; // 如果不相等,跳出循环,因为已经没有相同的了
            }
        }
        // 这里跳过已经重复的数据
        i = i + this.tableData[i][col + 'Rowspan'] - 1;
    }
});

},

// 合并行

arraySpanMethod({ row, column, rowIndex, columnIndex }) {

// 根据列索引决定合并哪一列

if (columnIndex === 1 || columnIndex === 3) { // 这里可能需要调整,根据你实际的列数

return {

rowspan: row[column.property + 'Rowspan'],

colspan: 1

};

}

}

相关推荐
果子切克now34 分钟前
vue2与vue3知识点
前端·javascript·vue.js
积水成江1 小时前
Vite+Vue3+SpringBoot项目如何打包部署
java·前端·vue.js·windows·spring boot·后端·nginx
计算机程序设计开发3 小时前
人口普查管理系统基于VUE+SpringBoot+Spring+SpringMVC+MyBatis开发设计与实现
vue.js·spring boot·毕业设计·课程设计·计算机毕业设计·计算机毕业论文
小雨cc5566ru3 小时前
Thinkphp/Laravel基于vue.js的社区健康服务管理系统Vscode毕业设计成品源码_0i0k4
vue.js·vscode·laravel
小雨cc5566ru4 小时前
Thinkphp/Laravel基于vue的金融理财产品销售系统设计与实现Vscode毕业设计成品源码.
vue.js·金融·laravel
Fanfffff7204 小时前
深入探索Vue3组合式API
前端·javascript·vue.js
就叫飞六吧5 小时前
vue2和vue3全面对比
前端·javascript·vue.js
qq_2518364576 小时前
基于ssm vue uniapp实现的爱心小屋公益机构智慧管理系统
前端·vue.js·uni-app
._Ha!n.6 小时前
Vue基础(二)
前端·javascript·vue.js
程序员的春天16 小时前
基于Springboot+Vue的线上课堂系统(含源码数据库)
数据库·vue.js·spring boot