elementUI 表格根据字段合并单元格 行
效果
arraySpanMethod({ row, column, rowIndex, columnIndex }) { if (this.rowSpanField.indexOf(column.property) > -1) { return { rowspan: row["rowspan" + column.property], colspan: 1 }; } }, setrowspans() { // 先给所有的数据都加一个v.rowspan = 1 this.tableData.forEach(v => { this.rowSpanField.forEach(key => { v["rowspan" + key] = 0; }); }); this.rowSpanField.forEach(key => { let sort = 0; for (let i = 0; i < this.tableData.length; i++) { sort = this.getRepeatNumber(i, this.tableData, key, 1); this.tableData[i]["rowspan" + key] = sort; i = i + sort - 1; } }); }, /** * * @param {*} i 数组当前位置 * @param {*} data 要搜索的数组 * @param {*} key 数组对象中搜索的字段 * @param {*} number 返回连续长度 * @returns 根据数组对象中位置,某个属性字段得到当前这个字段连续重复出现的次数 */ getRepeatNumber(i, data, key, number = 0) { let j = i + 1 < data.length ? i + 1 : data.length - 1; if (data[i][key] == data[j][key]) { number++; if (j >= data.length - 1) { return number; } else { return this.getRepeatNumber(j, data, key, number); } } return number; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | computed: rowSpanField() { switch (Number( this .method)) { case 0: return [ "organizationName" , "dataType" ]; case 1: return [ "dataType" , "resolution" ]; case 2: return [ "resolution" , "dataType" ]; } } html: <el-table :span-method= "arraySpanMethod" ></el-table > |
在获取到tabledata数据后调用一下
setrowspans方法就可以了
本文来自博客园,作者:zhupan,转载请注明原文链接:https://www.cnblogs.com/zhupanpan/p/16693170.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-09-14 leaflet 加载GeoJson后鼠标事件
2020-09-14 leafle 加载多个geojson自适应视角问题
2020-09-14 leaflet二次封装