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

};

}

}

相关推荐
毕设十刻7 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
王同学要变强10 小时前
【深入学习Vue丨第二篇】构建动态Web应用的基础
前端·vue.js·学习
程序定小飞11 小时前
基于springboot的web的音乐网站开发与设计
java·前端·数据库·vue.js·spring boot·后端·spring
武昌库里写JAVA11 小时前
element-ui 2.x 及 vxe-table 2.x 使用 css 定制主题
java·vue.js·spring boot·sql·学习
不会算法的小灰12 小时前
Vue.js 基础教程:从入门到实践
前端·javascript·vue.js
拉不动的猪12 小时前
浏览器&Websocket&热更新
前端·javascript·vue.js
那些免费的砖13 小时前
Reka UI - 一款免费开源的 Vue 无头 UI 组件库,样式定制开发项目的绝佳选择
vue.js·ui·开源
前端付豪13 小时前
Vue 中的 JSX:让组件渲染更灵活的正确方式
前端·javascript·vue.js
apollo_qwe14 小时前
Vue 权限控制神技!自定义 auth 指令优雅实现按钮级权限管理
vue.js·架构
阿登林15 小时前
Vue面试项目经验分享:如何专业展示技术能力与解决问题
vue.js·经验分享·面试